Redis学习笔记:复制
本文更新于2021-02-06,使用Redis 6.0.8,操作系统为Deepin 15.11。
复制步骤:
主服务器 | 从服务器 |
---|---|
(等待命令进入) | 连接(或者重连接)主服务器,发送SYNC命令 |
开始执行BGSAVE,并使用缓冲区记录BGSAVE之后执行的所有写命令 | 根据配置选项来决定是继续使用现有的数据(如果有的话)来处理客户端的命令请求,还是向发送请求的客户端返回错误 |
BGSAVE执行完毕,向从服务器发送快照文件,并在发送期间继续使用缓冲区记录被执行的写命令 | 丢弃所有旧数据(如果有的话),开始载入主服务器发来的快照文件 |
快照文件发送完毕,开始向从服务器发送存储在缓冲区里面的写命令 | 完成对快照文件的解释操作,像往常一样开始接受命令请求 |
缓冲区存储的写命令发送完毕,从现在开始,每执行一个写命令,就向从服务器发送相同的写命令 | 执行主服务器发来的所有存储在缓冲区里面的写命令,并从现在开始,接收并执行主服务器传来的每个写命令 |