Redis主从复制的全量复制过程分为三个阶段:
1.
准备阶段:主从库间建立连接并协商同步。从库向主库发送psync命令,请求数据同步。由于是第一次同步,psync命令中的runID设为“?”,offset设为-1。主库收到命令后,回复FULLRESYNC响应,并附上自己的runID和当前的复制进度offset。
2.
数据同步阶段:主库执行bgsave命令生成RDB文件,并将文件发送给从库。从库在接收到RDB文件后,会清空当前数据库并加载RDB文件。同时,主库会记录RDB文件生成后收到的所有写操作到replication buffer中。
3.
命令同步阶段:当RDB文件发送完毕后,主库会将replication buffer中的修改操作发送给从库,从库重新执行这些操作,以确保主从库的数据一致性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。