*Redis CLUSTER NODES 命令 获取集群节点的配置信息
*CLUSTER NODES
*语法
CLUSTER NODES
*说明
返回集群中所有节点的详细信息。这是查看集群拓扑和节点状态的主要命令。
输出格式:
每行一个节点,格式如下:
<id> <ip:port@cport> <flags> <master> <ping-sent> <pong-recv> <config-epoch> <link-state> <slot> <slot> ...
字段说明:
id:节点 IDip:port@cport:节点地址和集群总线端口flags:节点标志(master, slave, myself, fail, etc.)master:如果是副本,显示其主节点的 IDping-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 是集群节点的数量。