首页/数据/Redis 进阶速查/复制心跳:repl-ping-replica-period
主从与哨兵51 条

复制心跳:repl-ping-replica-period

主库按 repl-ping-replica-period(默认 10 秒)向从库发送 PING,用于从库检测主库存活并触发重连,也是延迟判断的基础心跳。

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

复制心跳是什么

主库按 repl-ping-replica-period 指定的间隔(默认 10 秒)向所有从库发送 PING,从库靠这个心跳判断主库是否还活着并刷新最后一次交互时间;如果超过 repl-timeout 仍未收到任何数据,从库才认为链路断开并开始重连。

基本信息

参数名repl-ping-replica-period
默认值10,单位为秒
生效位置主库侧生效,向所有从库发送
动态修改支持,CONFIG SET 后对后续心跳立即生效
配套参数repl-timeout,从库判定失联的超时时间,默认 60 秒

相关参数对照

参数默认值作用
repl-ping-replica-period10 秒主库向从库发送心跳的间隔
repl-timeout60 秒复制链路的超时判定;从库超时会断开重连并写日志
repl-backlog-size1mb复制积压缓冲区大小,影响短暂断连后能否增量续传
min-replicas-to-write0从库健康数不足时是否拒绝写入,与断连判定联动
master_link_status-从库侧 INFO replication 的链路状态,正常为 up

查看与调整

查看与调整
redis-cli CONFIG GET repl-ping-replica-period   # 主库侧看当前心跳间隔
redis-cli CONFIG GET repl-timeout               # 与心跳周期成对评估
redis-cli -h replica INFO replication | grep -E 'master_link_status|master_last_io_seconds_ago'
redis-cli CONFIG SET repl-ping-replica-period 5 # 缩短心跳,故障发现更快
# 心跳只增加固定的小流量,跨机房链路要先确认可接受再缩小周期

典型使用场景

  • 故障发现调优:希望从库更快察觉主库故障时,适当缩短心跳周期
  • 误判排查:链路频繁 up/down 时,先核对心跳周期与 repl-timeout 的比例
  • 跨机房部署:评估心跳常驻流量,从库数量多时保持默认更稳
  • 监控口径:用 master_last_io_seconds_ago 区分心跳停了还是复制数据停了
  • 故障转移后复查:角色变化后确认两侧参数与心跳表现是否一致
心跳是单向 PING,从库据此刷新与主库的交互时间,所以它反映链路存活,不反映数据是否真的追上;复制延迟要看偏移量与 master_last_io_seconds_ago。
心跳周期接近甚至大于 repl-timeout 时,短暂网络抖动就会被判成链路断开,引发反复重连与全量同步。两个参数必须一起评估,周期应明显小于超时值。

易错点

  • 把心跳周期调到极小以追求秒级故障发现,从库规模大时形成持续额外的流量与 CPU 开销
  • 只改心跳不看 repl-timeout,改完引发断连误判与重连风暴
  • 用 PING 心跳当复制延迟指标,链路活着但数据落后时完全看不出来
  • 主库改完参数没同步新主库,故障转移后参数失真
  • 忽略与 min-replicas-to-write 的联动,从库被判失联后写入保护意外生效

数据来源与参考

  • Redis 官方文档:redis.conf 复制心跳配置
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌