Redis的主从复制是提高Redis的可靠性的有效措施,主从复制的流程如下:
-
集群启动时,主从库间会先建⽴连接,为全量复制做准备
-
主库将所有数据同步给从库。从库收到数据后,在本地完成数据加载,这个过程 依赖于内存快照RDB
-
在主库将数据同步给从库的过程中,主库不会阻塞,仍然可以正常接收请求 。否则,redis的服务就被中断了。但是,这些请求中的写操作并没有记录到刚刚⽣成的RDB⽂件中。为了保证主从库的数据⼀致性,主库会在内存中⽤专⻔的replication buffer,记录RDB⽂件⽣成收到的所有写操作。
-
最后,也就是第三个阶段,主库会把第⼆阶段执⾏过程中新收到的写命令,再发送给从库。具体的操作是,当主库完成RDB⽂件发送后,就会把此时replocation buffer中修改操作发送给从库,从库再执⾏这些操作。这样⼀来,主从库就实现同步了
-
后续主库和从库都可以处理客户端读操作,写操作只能交给主库处理,主库接收到写操作后,还会将写操作发送给从库,实现增量同步
![](https://img-blog.csdnimg.cn/6d6de78d52f445f387d7d0ab88119b3b.jpeg)