知识点1
来源:互联网 发布:家里有网络怎么看电视 编辑:程序博客网 时间:2024/06/06 02:46
- 平安科技:
- 分表数据库最优查top100的方法
- AB是两分表,各存了100万数据怎么查top100
- redis负载怎么动态实现
- currenthashmap分段锁的实现原理
- jdk678的差异
- nio原理
- JAVA特种兵
- jmap -dump:format=b,file=xxx.bin <pid>
- jinfo -flag [jvm参数] <pid>
- 3.7.7 Visual VM
- 3.7.8 Mat
- dubbo
- netty的channel原理
- zookeeper如何实现分布式锁
- 读写锁的实现原理
- 项目
- 为什么选择rabbitMq
- 各大MQ比较
- zeroMQ : 性能最快,使用复杂,非持久化
- activeMQ:性能最差,支持持久化
- RabbitMQ:性能较好,健壮性最好,支持持久化,由于RabbitMQ是elang语言实现,高并发场景最优
- kafka:较rabbitMQ稳定性,可用性,可靠性差,性能比RabbitMQ强,初衷是做一个日志系统
- 各大nosql数据库比较
- 各大MQ比较
- RabiitMQ
- 优点:
- 易用:安装部署简单,上手门槛低,丰富的功能,符合AMQP标准
- 可靠:企业级消息队列,经过大量实践考验的高可靠性
- 可用:集群已扩展,轻松增减集群节点
- 监控:强大的web管理页面
- 强大的开源社区支持,生态活跃
- 优点:
- MongoDB
- 集群原理
- 程序员在互联网公司与行业软件公司的区别
- https://www.zhihu.com/question/20274106
- Redis
- 优缺点
- 数据结构丰富:string,set,hash,list,sortSet
- 性能卓越:单台读11W,写8W
- 原子性:Redis所有的操作都是原子性的,同事redis还支持对几个操作全并后的原子执行
- 丰富的特性:redis还支持publish/subscibe 通知,key过期等特性
- Redis所有操作都是串行的,可用与实现分布式锁
- 集群
- 主从:
- 支持:一主多从,多级主从结构
- 目的:冗余备份,提升读性能
- 主从同步异步进行
- 流程:
- 从服务器向主服务器发送sync指令
- 主服务器执行RDB持久化
- 主服务器将持久化后的RDB文件发送给从服务器
- 从服务器读将接收的文件存储在本地
- 从服务器读取文件到内存
- 主服务器将缓存的写指令已redis协议发送给从服务器
- 主从:
- 事务
- 指令:multi,exec,discard,watch
- multi组装一个事务
- exec执行一个事务
- discard取消一个事务
- watch监视一些key,一旦key在事务被执行前改变了,则取消事务执行
- 定义:redis实现的是简单的事务,只保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令;
- 流程:
- 服务端发现multi指令,会将此连接进入一个事务上下午
- 后续的命令并不立即执行,而是放入到一个队列中
- 接受到了exec命令,redis顺序执行队列中的命令,并将结果打包在一起返回给client,结束事务
- 接收到了discard命令,清空队列,并结束事务
- 问题1:
- 描述:redis实现的是简单的事务,不能保证读取数据与执行事务是一个原子性,这个地方可能存在
- 解决办法:使用watch实现一个乐观锁
- 乐观锁(事务):
- 流程:实现一个 incr a(a = 1) 的事务
- watch a
- get a
- multi
- set a 2
- exec
- 流程:实现一个 incr a(a = 1) 的事务
- 乐观锁(事务):
- 问题2:在执行的过程中出现问题,将不会回滚问题出现之前执行的命令
- 指令:multi,exec,discard,watch
- 分布式锁
- 悲观锁:
- 乐观锁
- 悲观锁:
- 持久化
- DBS:快照格式,将某一时刻缓存中的所有数据以快照的形式持久化到内存
- 过程:写临时文件 -> 替换旧快照
- 单独子线程,异步,不影响服务性能
- 优点:速度快,数据完整,不影响服务性能
- 缺点:服务宕机可能丢失部分未存入快照的数据
- AOF(append only file):追加而不是改写文件
- 过程:定时记录每一个服务命令,并追加到文件末尾,类似于操作日志
- 同步过程,服务主线程负责追加指令到临时文件
- 优点:有效保证数据完整性,提供修复工具
- 缺点:
- 影响服务性能(可配置:时间段同步,或每条同步)
- 持久化数据量大:提供rewrite功能,将一段时间的操作日志压缩:保留最后有效操作
- 恢复速度慢
- 重写流程:
- 创建重写子进程,读取原AOF文件 并压缩入一个临时文件
- 通知主线程,主线程将时间段内的操作指令追加到临时文件中
- 用备份文件替换原AOF文件
- DBS:快照格式,将某一时刻缓存中的所有数据以快照的形式持久化到内存
- 其他:
- hash在小数据时采用内存密集的数组作为存储结构,当超过设置值时改为hash表结构
- list在小数据量时也采用内存密集的数组作为存储结构,当超过设置值时改为链表实现的
- 优缺点
- 为什么选择rabbitMq
阅读全文
0 0
- 知识点1
- 知识点1
- android知识点整理1(知识点框架图)
- c#知识点(1)
- JAVA 常用知识点1
- C#知识点1-类集
- C/C++知识点1
- VC知识点1
- VC知识点1
- flex知识点1
- 零碎知识点1
- C++知识点总结(1)
- 知识点记录1
- Hcse 交换知识点-1
- DataTable知识点(1)
- 知识点(1)--mfc
- js知识点小结(1)
- 整理的知识点1
- 让你越来越值钱的秘密:目标清单
- NOIP模拟9.13
- Virus_JS3_PyAnalysisAndSummary
- [树形dp][trie]cf856B Similar Words
- Python函数式编程之lambda
- 知识点1
- 下载CentOS
- 前后端分离
- 3171: [Tjoi2013]循环格
- 写程序学ML:K近邻(KNN)算法原理及实现(一)
- secureCRT连接linux
- R实战:【常用函数】transform对列数据加工生成新列
- Parse Fatal Error at line 4 column 43 已经为元素 web-app 指定属性 xmlns。
- VMware提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。