首页/数据/Redis 进阶速查/级联复制:从库再挂从库
主从与哨兵51 条

级联复制:从库再挂从库

从库可以继续作为其他实例的主库(级联/链式复制),减轻顶层主库的同步压力;代价是链路加深后延迟叠加,故障影响面更复杂。

Redis 进阶速查数据更新于 2026-10-13

级联复制是什么

级联复制(链式复制)指从库再挂从库:主 → 从A → 从B。从A 既应用主库的数据,又继续把数据下发给从B,从而把主库的 fork 开销与同步带宽分摊到中间层,适合副本数量多或跨机房的部署。

基本信息

建立方式在从B上执行 REPLICAOF <从A地址> 6379,或在配置文件里写 replicaof
拓扑形态主库 → 中间从库 → 下游从库,可以多层
影响半径中间节点故障或重启会波及下游,主库不受影响
常用查看INFO replication 的 role、master_link_status、connected_slaves

典型使用场景

  • 跨机房同步:机房内先落一个从库,再由它下发给同机房其他副本,减少跨机房出口带宽
  • 副本数量多:主库 fork 与网络出口压力过大时,用中间层分摊下发
  • 备份隔离:在链路末端挂一个专做快照备份的从库,避免备份动作影响主库
  • 验证环境:被级联的从库用来跑新版本或新配置的只读验证

搭建与核对

搭建与核对
# 在从B上指向从A,而不是直接指向主库
redis-cli REPLICAOF 10.0.0.12 6379    # 从A 的地址与端口
redis-cli INFO replication | grep -E 'role|master_host|master_link_status'
redis-cli -h 10.0.0.12 INFO replication | grep -E 'connected_slaves|slave[0-9]'
redis-cli INFO replication | grep -E 'master_repl_offset|slave_repl_offset'

链路排查读法

字段含义关注点
role本节点角色逐级确认角色没串,中间层应为从库且带下游
master_link_status与上游的连接状态down 表示上行断开,下游很快也会落后
master_repl_offset本节点处理到的偏移量长期不增长说明同步已经停止
connected_slaves下游副本数量中间层显示 0 说明下游没连上
slaveN 中的 lag该副本的延迟秒数逐层累加,越往下越大
链路延迟是叠加的:下游的落后量等于中间层已经落后的量再加上这一跳的传输时间;对读取新鲜度敏感的业务不要放在过深的链路上。
中间节点如果关闭了持久化,重启后本地没有数据,会先与上游做一次全量同步;下游又可能因为上游复制标识变化被连带全量同步一次,网络与磁盘 IO 会在同一时间被占满。

易错点

  • 从库无脑再挂从库,忽略延迟叠加,下游读到明显过期的数据
  • 中间层关闭持久化,一次重启就触发上下游全量同步,带宽与 IO 同时被打满
  • 层级越加越深,故障时定位路径变长,切换与延迟问题的排查成本陡增
  • 以为让下游直连主库更快就随手改拓扑,结果主库重新承担全部下发压力

数据来源与参考

  • Redis 官方文档:复制拓扑说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌