拓扑明细的原始视图
CLUSTER NODES 每行输出一个节点,是当前节点视角下对全集群的认知快照。每行依次给出节点 ID、ip:port(含集群总线端口)、flags 标记、所属主节点 ID(仅从节点有)、最后交互时间戳、config-epoch、连接状态以及该节点负责的槽区间。它既是故障排查的第一入口,也是核对拓扑是否符合规划的第一手材料,但字段紧凑、含义密集,需要按列读而不是整体扫。
基本信息
| 每行字段 | 节点ID 地址 flags 主节点ID 时间戳 epoch 连接状态 槽区间 |
|---|---|
| flags 常见值 | myself / master / slave / fail / handshake / noaddr |
| 槽表示 | 区间写作 0-5460,单槽直接写数字 |
| 重点信号 | 出现 fail 或 disconnected 需要立即关注 |
| 使用建议 | 节点多时用脚本解析,而不是肉眼逐行比对 |
典型使用场景
- 故障排查第一眼:确认哪些节点已被标记为 fail
- 核对槽覆盖是否完整,0 到 16383 是否都有归属
- 确认主从配对关系与容量规划是否一致
- 扩容或缩容后对比前后输出,确认拓扑变化符合预期
- 把输出落档,作为故障复盘时的拓扑基线
常见用法
常见用法
redis-cli -p 7000 CLUSTER NODES # 完整拓扑
redis-cli -p 7000 CLUSTER NODES | grep -E 'fail|handshake' # 只看异常节点
redis-cli -p 7000 CLUSTER NODES | grep myself # 确认自己连的是哪个节点
redis-cli -p 7000 CLUSTER NODES | awk '{print $9}' | sort | head # 粗略看槽区间分布
redis-cli --cluster check 10.0.0.11:7000 # 需要结论时改用体检命令flags 速读
| flags | 含义 | 处置倾向 |
|---|---|---|
| myself | 当前连接的节点 | 用于确认自己连到了谁 |
| master | 主节点 | 正常角色标记 |
| slave | 从节点 | 后面一列是对应主节点 ID |
| fail | 已被多数节点判定失效 | 先观察自动故障转移,再决定是否人工介入 |
| handshake | 握手进行中 | 长时间不消失说明节点加入异常 |
| noaddr | 地址未知 | 常见于 NAT 或地址配置错误的场景 |
输出中的时间戳与 epoch 属于内部状态,人工解读成本高。需要判断集群整体是否健康时,优先使用 redis-cli --cluster check,它会把槽覆盖、主从配对、配置一致性等关切点直接汇总出来。