Redis基础篇(六)数据同步:主从复制

 

第一步,主从库建立连接,协商同步。

从库发送psync命令,表示进行数据同步。其中runID表示主库ID,第一次不知道主库的runID,就设置为"?"
主库收到psync命令后,用FULLRESYNC响应,返回runID(主库ID)和offset(主库目前的复制进度)。
从库收到响应后,记录这两个参数
第二步:主库同步数据给从库。

从库收到数据后,在本地完成数据加载。这过程依赖于RDB快照。

主库执行bgsave命令,生成RDB文件,再把文件发强从库。
从库收到RDB文件后,先清空当前数据库,然后加载RDB文件。
第三步,主库发送新写命令给从库

主库在数据同步过程中,会记录所有写操作,避免丢失同步过程接收的新的写命令。

主库使用replication buffer来新的写命令。
当从库加载RDB文件完成后,主库再把replication buffer的内容发送给从库,从库再执行这些操作实现同步。
关于replication buffer的更多内容,下面再介绍。

如果有多个从库,每个从库都要跟主库进行全量同步,这样主库的压力会很大。

posted @ 2021-01-05 10:20  1112的  阅读(91)  评论(0编辑  收藏  举报