在线文档教程

cluster slots

CLUSTER

CLUSTER SLOTS

自3.0.0起可用。

时间复杂度: O(N)其中N是 Cluster 节点的总数

CLUSTER SLOTS 返回有关哪些集群插槽映射到哪些 Redis 实例的详细信息。该命令适合由 Redis Cluster 客户端库实现使用,以便检索(或在接收到重定向时更新)将簇哈希槽与实际节点网络坐标关联的映射(由IP地址和TCP端口组成),因此当收到一个命令时,它可以发送到命令中指定的密钥的正确实例。

嵌套结果数组

每个嵌套结果是:

  • 开始插槽范围

  • 结束插槽范围

  • 主插槽范围表示为嵌套 IP /端口阵列

  • 插槽范围的主复制品的第一个副本

  • 第二个副本

  • ...继续,直到返回此主设备的所有副本。

每个结果都包括所列槽位范围的主实例的所有活动副本。失败的副本不会返回。

第三个嵌套答复保证是插槽范围的主实例的 IP /端口对。第三个嵌套回复后的所有 IP /端口对都是主设备的复制品。

如果群集实例具有非连续的插槽(例如1-400,900,1800-6000),则主副本 IP /端口结果将针对每个顶级插槽范围答复进行复制。

警告:对于每个 Redis 实例,较新版本的 Redis 群集将输出不仅仅是 IP 和端口,而且还会将节点 ID 作为阵列的第三个元素输出。在未来的版本中,可能会有更多元素更好地描述节点。一般来说,客户端实现应该仅仅依赖于某些参数处于指定位置的固定位置这一事实,但更多的参数可能随之而来,应该被忽略。同样,客户端库应尽可能地尝试处理旧版本可能只有 IP 和端口参数的事实。

返回值

阵列回复:带有 IP /端口映射的插槽范围的嵌套列表。

示例输出(旧版本)

127.0.0.1:7001> cluster slots 1) 1) (integer) 0 2) (integer) 4095 3) 1) "127.0.0.1" 2) (integer) 7000 4) 1) "127.0.0.1" 2) (integer) 7004 2) 1) (integer) 12288 2) (integer) 16383 3) 1) "127.0.0.1" 2) (integer) 7003 4) 1) "127.0.0.1" 2) (integer) 7007 3) 1) (integer) 4096 2) (integer) 8191 3) 1) "127.0.0.1" 2) (integer) 7001 4) 1) "127.0.0.1" 2) (integer) 7005 4) 1) (integer) 8192 2) (integer) 12287 3) 1) "127.0.0.1" 2) (integer) 7002 4) 1) "127.0.0.1" 2) (integer) 7006

示例输出(新版本,包含ID)

127.0.0.1:30001> cluster slots 1) 1) (integer) 0 2) (integer) 5460 3) 1) "127.0.0.1" 2) (integer) 30001 3) "09dbe9720cda62f7865eabc5fd8857c5d2678366" 4) 1) "127.0.0.1" 2) (integer) 30004 3) "821d8ca00d7ccf931ed3ffc7e3db0599d2271abf" 2) 1) (integer) 5461 2) (integer) 10922 3) 1) "127.0.0.1" 2) (integer) 30002 3) "c9d93d9f2c0c524ff34cc11838c2003d8c29e013" 4) 1) "127.0.0.1" 2) (integer) 30005 3) "faadb3eb99009de4ab72ad6b6ed87634c7ee410f" 3) 1) (integer) 10923 2) (integer) 16383 3) 1) "127.0.0.1" 2) (integer) 30003 3) "044ec91f325b7595e76dbcb18cc688b6a5b434a1" 4) 1) "127.0.0.1" 2) (integer) 30006 3) "58e6e48d41228013e5d9c1c37c5060693925e97e"