对照代码:
https://github.com/antirez/redis.git
git checkout 4.0
为了避免逻辑复杂,同时符合agent的开发需求:
不支持 sync 命令
不支持diskless
不支持auth
主要侧重master一端逻辑。
一、主从同步流程
屏幕快照 2020-04-26 下午5.02.31.png
屏幕快照 2020-04-26 下午5.03.22.png
屏幕快照 2020-04-26 下午5.03.47.png
二、定时探活
全量同步中:
主库每1s检测repl_ack_time,超时则断开主从复制。(从库注意在自己flushdb,loaddb,发送\n)
从库每1s检测repl_transfer_lastio,超时则断开主从复制。(主库在做rdb,过程中发送\n)
建立主从关系之后,每1s:
replicationCron:
主库从库都会定时检测lastinteraction,超时则断开主从关系。从库主动发起psync请求。
三、主从同步流程图
image.png
网友评论