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数量由slave发送replconf ack命令做确认
  • slave延迟由slave发送replconf ack命令做确认

命令传播流程

Redis学习_11_主从复制_心跳机制与命令传播