完全复制
- 第一步是同步
1)从服务器向主服务器发送SYNC命令。
2)收到SYNC命令的主服务器执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现在开始执行的所有写命令。
3)BGSAVE命令执行完毕后,将生成的RDB文件传输给从服务器,从服务器接收到开始更新。
4)主服务器将记录在缓冲区的所有写命令发送给从服务器,从服务器状态更新。
如下图示例所示: - 命令传播
主服务器将更改服务器状态的命令发送给从服务器。
数据结构如下:
1 | typedef struct zskiplistNode { |