2022-10-26 00:25:14
Redis集群中主从数据库间的数据复制通过主从架构实现,主库处理读写并同步数据至从库,从库仅支持读取。其核心复制流程分为初始全量同步和后续增量同步两个阶段,具体步骤如下:

步骤1:从库发起同步请求从库通过SYNC或PSYNC命令向主库发送数据同步请求。PSYNC是Redis 2.8版本后引入的增量同步命令,可优化重复全量同步的性能。
步骤2:主库生成快照文件主库接收到同步请求后,执行BGSAVE命令生成当前数据的RDB快照文件。此过程在后台进行,避免阻塞主库的正常读写操作。
步骤3:传输并加载快照文件主库将生成的RDB文件发送给从库,从库接收后清空自身旧数据,并加载RDB文件恢复至主库的快照状态。此步骤完成主从数据的初始一致性。
步骤4:发送缓冲区写命令主库将快照生成期间积累的写命令(存储在复制缓冲区中)发送给从库,从库执行这些命令以弥补快照期间的增量变更。
步骤5:持续增量同步初始同步完成后,主库每执行一个写命令(如SET、DEL等),会通过异步复制机制将命令实时发送给从库。从库执行相同命令保持数据一致,此过程称为命令传播。
关键特性说明:
注意事项:
通过上述机制,Redis实现了高效、可靠的主从数据复制,为集群高可用和横向扩展提供了基础支持。