Redis主从心跳由应用层PING和REPLCONF ACK命令维持,主库每秒发PING,从库需立即回ACK;若超repl-timeout(默认60秒)未收到ACK,主库即标记该从库为down。Redis主从心跳靠什么维持主从心跳不是靠TCP保活,而是靠应用层的 PING 和 REPLCONF ACK 两个命令来回完成。主库每秒向从库发一次 PING(可配置间隔),从库收到后必须立即回一个 REPLCONF ACK <offset>,其中 offset 是它当前复制到的主库偏移量。为什么从库没回ACK会导致主库标记为"down"主库会记录每个从库最近一次收到 REPLCONF ACK 的时间。如果超过 repl-timeout(默认60秒)没收到,主库就把该从库状态设为 down,并在 INFO replication 中显示 slaveX:state=down。这不是网络断了才触发,而是"没按时回ACK"就判故障。repl-timeout 只控制主库对从库的超时判断,不影响 PING 发送频率(那是 repl-ping-replica-period,默认10秒)从库即使网络通畅,但忙于执行阻塞命令(如 KEYS *、大 LRANGE)、或正在做RDB快照,也可能延迟回ACK主库不会重试发 PING,只等下一轮定时发送;所以单次丢包不致命,持续延迟才危险怎么确认是心跳问题而不是同步卡住看 INFO replication 输出里关键字段比对: 标贝科技 标贝科技-专业AI语音服务的人工智能开放平台