Redis源码学习笔记

Redis学习之复制

2019-05-28  本文已影响0人  lixin_karl

复制

slaveof master-ip master-port

SYNC

SYNC命令是一个非常耗费资源的命令,原来如果主从断开连接,当从服务器再次连接上主服务器时,从服务器又会发送SYNC命令。
redis2.8 之后使用了PSYNC命令,初次主从同步操作跟上面一样。而断线重连之后,依据以下数据同步数据库。

PSYNC <runid> <offset> runid:断线前复制的主服务器ID offset:从服务器最后接收命令的偏移量。主服务器返回 +CONTINUE 执行部分同步复制操作

复制的实现

​ 1、设置主服务器的ip port:
​ 2、建立到主服务器的连接:
​ 3、发送PING命令:主服务器返回PONG表示正常
​ 4、身份验证:
​ 5、发送端口信息:主服务器 info REPLICATION 打印出从服务器的监听端口号信息
​ 6、同步:PSYNC
​ 7、命令传播:接收主服务器的写命令

心跳检测

​ 从服务器会以每秒一次的频率发送REPLCONF ACK <replication_offset>给主服务器
​ 1、检测主从的连接状态
​ 2、辅助实现min-slaves选项
​ 3、检测命令丢失:如果从服务器发送的offset跟主服务器不一样,主库会同步数据

上一篇下一篇

猜你喜欢

热点阅读