013.Redis的主从复制

配置开启主从复制

  1. 配置文件中

slaveof host port

如果用户使用SALVEOF配置选项,那么Redis在启动时首先会载入当前可用的任何快照文件或者AOF文件,然后连接主服务器执行复制过程(总之,要让Redis先运行起来)。

  1. 通过指令

slaveof on one
slaveof host port

Redis复制的启动过程

  1. 主服务器:(等待命令进入)
    从服务器:连接(或重连接)主服务器,发送SYNC命令

  2. 主服务器:开始执行BGSAVE,并使用缓冲记录区记录BGSAVE之后执行的所有写命令
    从服务器:根据配置选项来决定是继续使用现有的数据(如果有的话)来处理客户端的命令请求,还是向发送请求的客户端返回错误。

  3. 主服务器:BGSAVE执行完毕,向从服务器发送快照文件,并在发送期间继续使用缓冲记录被执行的写命令。
    从服务器:丢弃所有旧数据(如果有的话),开始载入主服务器发来的快照文件

  4. 主服务器:快照文件发送完毕,开始向从服务器发送存储在缓冲区里面的写命令。
    从服务器:完成对快照文件的解释操作,像往常一行开始接受命令请求。

  5. 主服务器:缓存区存储的写命令发送完毕;从现在开始每执行一个写命令,就想从服务器发送相同的写命令。
    从服务器:执行主服务器发送的所有存储在缓冲区里面的写命令;并从现在开始,接受并执行主服务器传来的每个写命令。