*Redis CLUSTER NODES 命令 获取集群节点的配置信息

*CLUSTER NODES

*语法

CLUSTER NODES

*说明

返回集群中所有节点的详细信息。这是查看集群拓扑和节点状态的主要命令。

输出格式: 每行一个节点,格式如下: <id> <ip:port@cport> <flags> <master> <ping-sent> <pong-recv> <config-epoch> <link-state> <slot> <slot> ...

字段说明

  • id:节点 ID
  • ip:port@cport:节点地址和集群总线端口
  • flags:节点标志(master, slave, myself, fail, etc.)
  • master:如果是副本,显示其主节点的 ID
  • ping-sent:最后一次发送 PING 的时间戳(0 表示未发送)
  • pong-recv:最后一次接收 PONG 的时间戳
  • config-epoch:节点的配置纪元
  • link-state:连接状态(connected 或 disconnected)
  • slot:节点负责的槽位范围

*示例

# 获取所有节点信息
redis-cli CLUSTER NODES

# 只查看主节点
redis-cli CLUSTER NODES | grep master

# 查看当前节点信息
redis-cli CLUSTER NODES | grep myself

# 查看故障节点
redis-cli CLUSTER NODES | grep fail

# 查看断开连接的节点
redis-cli CLUSTER NODES | grep disconnected

# 解析节点负责的槽位
redis-cli CLUSTER NODES | grep "master" | awk '{print $1, $9}'

# 监控脚本:检查所有节点是否连接正常
#!/bin/bash
DISCONNECTED=$(redis-cli CLUSTER NODES | grep "disconnected" | wc -l)
if [ "$DISCONNECTED" -gt 0 ]; then
  echo "警告:有 $DISCONNECTED 个节点连接断开!"
  redis-cli CLUSTER NODES | grep "disconnected"
fi

# 查找副本关系
redis-cli CLUSTER NODES | grep "slave" | awk '{print $1, "->", $4}'

*返回值

  • 字符串:多行文本,每行一个节点的信息

*版本兼容性

版本 说明
>= 3.0.0 可用

*时间复杂度

O(N),其中 N 是集群节点的数量。