You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis副本如何保持数据更新?主节点新写入数据的同步方式及模式疑问

Redis副本的数据同步机制

一、副本如何初始化并追赶上主节点

  • 副本启动后,向主节点发送PSYNC命令发起同步请求。
  • 主节点执行BGSAVE生成全量RDB快照,同时把这段时间的所有写入命令暂存到复制缓冲区。
  • 主节点将RDB文件发送给副本,副本清空自身数据后加载RDB完成全量恢复。
  • 主节点再把缓冲区里的增量命令同步给副本,副本执行这些命令后,就完全追赶上主节点的数据状态。

二、追赶上主节点后,新写入的同步方式

当副本和主节点数据完全一致后,主节点会通过主动推送的方式同步新写入:

  • 主节点每处理完一个写入命令,会先把命令写入自身的复制积压缓冲区(replication backlog),然后立即推送给所有已建立连接的副本。
  • 副本收到命令后立刻执行,以此保持和主节点的数据实时同步。

三、关于推送 vs 轮询的说明

Redis主从同步的核心是主节点主动推送,副本并不会持续轮询获取数据:

  • 推送机制能保证新数据几乎无延迟地同步到副本,效率远高于轮询。
  • 副本只会定期发送PING命令给主节点,目的是检测连接是否正常,并非请求数据。只有当主从连接中断后,副本重新连接时,才会通过PSYNC命令,基于复制积压缓冲区的偏移量请求中断期间的增量数据,这属于异常恢复场景的主动请求,正常同步全程是主节点推送。

内容的提问来源于stack exchange,提问作者Ankit Sahay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:52:07