zhanggao / learnNotes

2 stars 2 forks source link

Redis 主从同步 #25

Open zhanggao opened 4 years ago

zhanggao commented 4 years ago

SYNC 从向主发送SYNC命令,主开始执行BGSAVE命令,后台生成RDB文件,同时用一个缓冲区记录所有写命令。 初次复制,该方式无任何问题;断线复制效率过低。

zhanggao commented 4 years ago

PSYNC 初次复制和SYNC相同。 部分同步功能:复制偏移量、复制积压缓冲区、服务器运行ID。 主从分别维护复制偏移量,如果主向从同步33字节的数据,则主从偏移量都加33。 复制积压缓冲区由主维护,默认大小为1M,如果offset之后的数据在积压缓冲区内,则可以执行部分同步功能,如果超出了,则只能执行完整同步功能。 服务器运行ID,主从都有自己的ID,从接受主时,会将主的ID记录下来,断线重连从会将自己记录的ID发给主,如果不同只能进行完整复制功能,相同才能进行部分复制功能。