命令介绍
Cluster 族命令用于集群模式下的分片拓扑查询。在分布式缓存数据库的集群架构中,数据按16384个哈希槽(Hash Slot)分布在多个分片上,Cluster 族命令帮助客户端实现智能路由和集群状态感知。其核心命令按功能可分为以下两类:
集群拓扑与状态查询
CLUSTER NODES:返回集群中所有节点的 ID、地址、角色(主/从)、状态及槽位分配信息。
CLUSTER INFO:返回集群整体状态摘要,包括集群状态(ok/fail)、已分配槽位数量、已知节点数等关键指标。
CLUSTER SLOTS:返回槽位范围与节点的映射关系,是客户端路由表构建的核心命令。
CLUSTER SHARDS(Redis 7.0+ / Valkey 8.0+):以分片为粒度返回拓扑信息,更便于识别主从关系和分片边界。
槽位计算与路由
CLUSTER KEYSLOT:返回指定 Key 所属的哈希槽编号(0 - 16383),客户端据此将请求路由到正确的分片节点。
CLUSTER COUNTKEYSINSLOT:返回指定槽位中的键数量(仅本地节点)。CLUSTER GETKEYSINSLOT:返回指定槽位中的键名列表。
命令支持概览
槽位查询命令:
cluster keyslot、cluster countkeysinslot、cluster getkeysinslot、cluster slots、cluster shards。其中 cluster shards 仅 Redis 7.0 及 Valkey 8.0、9.0 的标准架构与集群架构支持;其余4个在 Redis 4.0 及之后各版本的集群架构中均支持,标准架构不支持。cluster slots 返回槽到节点映射,cluster shards 返回槽到分片映射(7.0+ 的改进版本)。集群信息查询命令:
cluster nodes、cluster info。在 Redis 4.0 及之后各版本的集群架构中均支持,标准架构不支持。跨 Slot 限制:Cluster 族命令操作集群元数据(槽位、节点信息),不操作用户数据键,不存在跨 Slot 访问场景。
命令兼容性矩阵
该族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
说明:
标准架构下所有
cluster 命令均不适用(✗)。集群架构下仅槽位查询(cluster keyslot、cluster countkeysinslot、cluster getkeysinslot、cluster slots、cluster shards)及集群信息查询(cluster nodes、cluster info)子命令受支持,其余涉及拓扑变更的运维管理命令全局不可用。cluster shards 是 cluster slots 的改进版本(Redis 7.0+ 引入),提供按分片聚合的槽位映射信息。命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Redis 7.0 / Valkey 8.0标准架构 | Redis 7.0 / Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
cluster keyslot | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |
cluster countkeysinslot | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |
cluster getkeysinslot | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |
cluster slots | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |
cluster shards | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
cluster nodes | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |
cluster info | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | — |