关于redis:redis学习之复制

9次阅读

共计 545 个字符,预计需要花费 2 分钟才能阅读完成。

Redis 从 2.8 版本开始,应用 PSYNC 代替 SYNC 命令来执行复制时的同步操作,PSYNC 有残缺重同步与局部重同步两种模式:

  • 残缺同步模式用于解决首次复制状况:通过让主服务器创立并发送 RDB 文件,及向从服务器发送保留在缓冲区外面的写命令来进行同步(也叫命令流传)。
  • 局部重同步用于解决断线后反复制状况:主服务器从主从服务器连贯断开期间执行的写命令发送给从服务器,让从服务器能够更新至主服务器以后所处的状态。

其中,局部重同步性能由上面三局部形成:

  • 主从服务器的复制偏移量。通过复制偏移量能够晓得主从服务器是否处于统一状态。
  • 主服务器的复制积压缓冲区。主服务器在进行命令流传时会将命令写入复制积压缓冲区,且缓冲区里的命令都有对应的复制偏移量。当主从重连上时会依据偏移量比对来确定重传的地位。
  • 主从服务器的运行 ID。主从服务器都会有本人的运行 ID,在每次同步过程中都会将本人的运行 ID 发送给对方,以此来判断对方的身份。

最初,再简略列一下复制的实现过程:

  1. 从服务器记录主服务器的地址与端口。从服务器收到客户端的 SLAVEOF 命令后会先记录主服务器的地址与端口。
  2. 建设连贯。
  3. 从服务器向主服务器发送 PING 命令。如果主服务失常收到命令会响应 PONG 命令。
  4. 从服务器进行身份验证。
  5. 从服务器发送端口命令。
  6. 同步。
  7. 命令流传。
正文完
 0