Redis学习_11_主从复制_心跳机制与命令传播
心跳机制
概念:进入命令传播阶段后,master与slave与要进行信息交换,使用心跳机制来进行维护,实现双方保持在线。
-
master心跳:
- 指令:PING
- 周期:通过
repl-ping-slave-period
配置,默认时10秒。 - 作用:判断slave是否在线
- 查询:可以通过info replication查看,获取slave最后一次的连接间隔,lag是0或者1是正常的,超过1就可能是超时了。
-
slave心跳:
- 指令:
replconf ack [offset]
- 周期:1秒
- 作用1:告诉master自己的复制偏移量,获取最新的数据变更指令
- 作用2:判断master是否在线
- 指令:
心跳阶段注意事项
- 当slave多数掉线或者延迟较高时,master为了保障数据的稳定性,将拒绝所有信息同步操作。
- slave数量小于2个时,master停止写操作,停止数据同步:
min-slaves-to-write 2
- slave延迟都大于8秒时,master停止写操作,停止数据同步:
min-slaves-max-lag 8
- slave数量小于2个时,master停止写操作,停止数据同步:
- slave数量由slave发送
replconf ack
命令做确认 - slave延迟由slave发送
replconf ack
命令做确认