使用Pipline的好处
- Pipline和Linux的管道相似
- redis基于请求/响应模型,单个请求处理需要一一应答
- Pipline批量执行指令,节省多次IO往返的时间
- 有顺序依赖的指令建议分批发送
redis的同步机制
主从同步原理
- 全同步过程:(1)Salve发送sync命令到Master(2)Master启动一个后台进程,将redis中的数据快照保存到文件中(3)Master将保存数据快照期间接受到的写命令缓存起来(4)Master完成写文件操作后,将该文件发送给Salve(5)Salve接受到文件后,使用新的AOF文件替换掉旧的AOF文件(6)Master将这期间收集到的增量写命令发送给Salve端
- 增量同步过程:(1)Master接收到用户的操作指令,判断是否需要传播到Salve(2)将操作记录追加到AOF文件(3)将操作传播到其它Slave:1. 对齐主从库 2. 往响应缓存写入指令(4)将缓存中的数据发送给Slave
redis sentinel:解决主从同步Master宕机后的主从切换问题
- 监控:检查主从服务器是否运行正常
- 提醒:通过API向管理员或者其它应用程序发送故障通知
- 自动故障迁移:主从切换
流言协议Gossip(在杂乱无章中寻求一致)
- 每个节点都随机的与对方通信,最终所有节点的状态达成一致
- 种子节点定期随机向其它节点发送节点列表以及需要传播的消息
- 不保证消息一定会传递给所有节点,但是最终会趋于一致