首页/数据/Redis 进阶速查/INFO replication 字段速读
主从与哨兵51 条

INFO replication 字段速读

该段落的 role、connected_slaves、master_link_status、master_last_io_seconds_ago、slave_repl_offset 等字段,是判断复制拓扑与健康度的主要依据。

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

复制状态一眼看清

INFO replication 段落是判断主从拓扑与健康度的第一手数据:role 决定后面的字段布局,主库侧给出各从库的地址、在线状态、已同步偏移与滞后秒数,从库侧给出所属主库地址、链路状态、最后一次收到数据距今多久。排障时先读这一段,再决定要不要翻慢日志和网络指标。

基本信息

命令redis-cli INFO replication(可加 -h/-p 指定实例)
适用版本Redis 2.8 及以上,字段随版本持续增补
权限只读账号即可,不需要管理员权限
输出纯文本段落,每行 key:value

典型使用场景

  • 核对主从拓扑:确认从库挂在预期的节点上,有没有意料之外的级联复制
  • 判断复制健康:链路是否为 up、滞后是否在阈值内、偏移是否还在前进
  • 排查从库掉线:区分是被主库主动断开(输出缓冲超限)还是自身网络问题
  • 切换前后确认:切换前确认目标从库偏移已追平,切换后确认原主已转为从库
  • 容量与延迟评估:用偏移差值估算落后数据量,判断链路带宽是否够用

排查示例

排查示例
redis-cli INFO replication | grep role                        # 先确认这台是主还是从
redis-cli INFO replication | grep -E 'connected_slaves|master_repl_offset'   # 主库视角
redis-cli -h 10.0.0.12 INFO replication | grep master_link_status           # 从库链路状态
watch -n 5 "redis-cli INFO replication | grep -E 'slave[0-9]+:.*lag'"        # 持续观察滞后
redis-cli INFO replication | grep master_last_io_seconds_ago               # 从库最后一次收到数据

主库字段读法

字段含义正常与异常
rolemaster 或 slave,决定后续字段布局与预期角色不符先查复制关系
connected_slaves已连接的从库数量少于拓扑记录说明有从库掉线
slaveN:ip= port= state=第 N 个从库的地址与状态state 非 online 即异常
slaveN 的 offset该从库已同步到的偏移与主库差值持续扩大即落后
slaveN 的 lag距上次收到确认的秒数持续大于 10 秒视为滞后
master_repl_offset主库写入总偏移突降说明实例被重置或换主
repl_backlog_active / size复制积压缓冲状态与大小size 过小会频繁触发全量同步

从库字段读法

字段含义正常与异常
master_host / master_port所属主库地址与拓扑记录不符说明被人改过
master_link_statusup 或 downdown 期间从库可能仍在提供旧数据
master_last_io_seconds_ago距上次收到主库数据的秒数超过几个心跳周期即异常
master_sync_in_progress是否正在全量同步为 1 时数据尚不完整
slave_repl_offset从库已应用的数据偏移与主库偏移之差反映积压量
slave_priority参与主库选举的优先级值越小越优先被提升
字段名保留 slave 前缀属于历史命名,与 replica 同义(REPLICAOF 是 SLAVEOF 的别名)。不同版本会增补字段,解析脚本按前缀匹配比写死完整字段名更稳。
判断滞后不要只看 lag:它是秒级粗粒度且可能瞬时归零,结合主从 offset 差值更可靠;换算落后字节量时用 master_repl_offset 减去从库侧偏移即可。

易错点

  • 只看到 master_link_status 为 up 就认为复制正常:链路在但偏移长期不前进同样是故障,可能是从库处理不过来或主库写入被阻塞
  • 硬编码解析 slave0 这一行:从库数量变化、字段增补都会让匹配失效,应按键名或前缀取值
  • 在从库上直接执行写入:从库默认只读会报错,为了让写入过去而关掉只读,会让主从数据分叉且难以回收
  • 高频采集时拉取 INFO 全量输出:实例大时这段文本并不小,应只取 replication 段,避免给主线程增加无谓开销

数据来源与参考

  • Redis 官方文档:INFO replication 段落说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌