写点什么

Redis 的 PSYNC 命令

作者:周杰伦本人
  • 2022 年 9 月 15 日
    贵州
  • 本文字数:562 字

    阅读完需:约 2 分钟

Redis 的 PSYNC 命令

从服务器对主服务器的复制分为初次复制和断线后重复制,初次复制是从服务器没有复制过任何主服务器或者从服务器当前要复制的主服务器和上一次复制的主服务器不同


断线后的重复制是处于命令传播阶段主从服务器中断了复制,从服务器通过自动重连接重新连上主服务器后继续复制主服务器。

SYNC 复制命令

SYNC 复制命令是个很耗资源的操作,因为主服务器需要执行 BGSAVE 命令来生成 RDB 文件,这个生成操作耗费主服务器大量的 CPU、内存和磁盘 IO 资源,主服务器将自己生成 RDB 文件发送给从服务器会耗费主从大量的网络资源,对主服务器响应命令请求的时间产生影响,接收 RDB 文件的从服务器需要载入主服务器发来的 RDB 文件,载入期间不能处理命令请求。

PSYNC 命令

Redis 2.8 以后使用 PSYNC 命令代替 SYNC 命令,PSYNC 具有完整重同步和部分重同步,完整重同步用于处理初次复制,和 SYNC 命令步骤基本一样,都是通过主服务器创建并发送 RDB 文件,向从服务器发送保存在缓冲区里面的写命令来进行同步,部分重同步用于处理断线后重复制情况:当从服务器在断线后重新连接主服务器时,主服务器将主从服务器连接断开期间执行的写命令发送给从服务器,从服务器只要接收并执行这些写命令就可以将数据库更新到主服务器当前状态。


SYNC 命令需要生成传送和载入整个 RDB 文件,而部分重同步只需要将从服务器缺少的写命令发送给从服务器执行。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020.02.29 加入

公众号《盼盼小课堂》,多平台优质博主

评论

发布
暂无评论
Redis 的PSYNC命令_9月月更_周杰伦本人_InfoQ写作社区