看总线连接本身
CLUSTER LINKS 是 Redis 7.0 提供的新命令,列出本节点在「集群总线」上与其他节点建立的连接:方向、对端节点、创建时间与收发缓冲区用量。CLUSTER NODES 只告诉你有几个节点,CLUSTER LINKS 才告诉你这些节点之间是不是真的在通。
基本信息
| 版本 | Redis 7.0 起 |
|---|---|
| 返回 | 每个对端连接一份映射:direction、node、create-time、events、send-buffer-allocated、send-buffer-used |
| 端口 | 集群总线固定为业务端口加 10000 |
| 用途 | 定位总线层的连通性与堆积问题 |
典型使用场景
- NODES 显示各节点 connected,但配置传播与故障转移异常时定位总线层
- 排查单向断连:一个方向有连接,另一个方向却没有
- 观察发送缓冲水位,判断是否有节点处理慢导致消息堆积
- 新节点加入后确认它与所有既有节点都建立了连接
- 跨机房部署时确认总线连接没有频繁中断重建
查看与核对
查看与核对
# 列出本节点看到的全部集群总线连接
redis-cli -p 7000 CLUSTER LINKS
# 对照节点视角,确认双方都认为连接存在
redis-cli -p 7000 CLUSTER NODES
# 业务端口 7000 对应的总线端口是 17000,防火墙需单独放行
ss -lntp | grep -E '7000|17000'字段逐列读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| direction | 连接方向,to 或 from | 缺少某一方向的连接即单向断连 |
| node | 对端节点 ID | 出现陌生 ID 说明有残留节点在尝试连接 |
| create-time | 连接建立时间戳 | 频繁变化说明连接反复重建 |
| events | 该连接关注的事件标志 | 长期为 0 说明没有需要交换的信息 |
| send-buffer-allocated | 为该连接分配的发送缓冲 | 持续偏高说明对端消费慢 |
| send-buffer-used | 已使用的发送缓冲 | 长期高水位说明消息在堆积 |
很多人只放行了业务端口就以为集群通了:总线端口是业务端口加 10000,必须单独放行,否则会出现「状态显示正常但集群行为异常」这种难查的现象。
7.0 以下没有这个命令,只能靠日志与 CLUSTER NODES 的链路状态推断,排查时不要直接套用新版字段名,以免对错方向。