作用
- 返回有关哪些集群插槽映射到哪些redis实例的详细信息。
- 该命令适合由Redis Cluster 客户端库实现使用,以便检索(或者在接收到重定向时更新)将簇哈希槽与实际节点网络坐标关联的映射(由IP地址和TCP端口组成)
- 因此当收到一个命令时,它可以发送到命令中指定的密钥的正确实例。
- 自3.0.0起可用。
- 时间复杂度: O(N)其中N是 Cluster 节点的总数
返回值
嵌套结果数组。
每个嵌套结果是:
- 开始插槽范围
- 结束插槽范围
- 主插槽范围表示为嵌套 IP /端口阵列
- 插槽范围的主节点的从节点
- 第二个从节点
- …继续,直到返回此主节点的所有从节点。
每个结果都包括所列槽位范围的主实例的所有活动从节点。失败的从节点不会返回
第三个嵌套答复保证的是插槽范围的主节点的 IP /端口对。第三个嵌套回复后的所有IP /端口对都是主节点的从节点。
如果群集实例具有非连续的插槽(例如1-400,900,1800-6000),则主副本 IP /端口结果将针对每个顶级插槽范围答复进行复制。
警告:对于每个redis实例,较新版本的redis集群将输出的不仅仅是IP和端口,而且还会将节点ID作为阵列的第三个元素输出。在未来的版本中,可能会有更多元素更好地描述节点。一般来说,客户端实现应该仅仅依赖于某些参数处于指定位置的固定位置这一事实,但更多的参数可能随之而来,应该被忽略。同样,客户端库应该尽可能的尝试处理旧版本可能只有IP和端口参数的事实
示例
如果集群还没有配置好,那么这个命令会返回一些无意义的,比如:
127.0.0.1:6380> CLUSTER SLOTS
1) 1) (integer) 5368
2) (integer) 5368
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
2) 1) (integer) 5798
2) (integer) 5798
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
3) 1) (integer) 6257
2) (integer) 6257
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
4) 1) (integer) 7142
2) (integer) 7142
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
5) 1) (integer) 9670
2) (integer) 9670
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
6) 1) (integer) 10918
2) (integer) 10918
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
7) 1) (integer) 12539
2) (integer) 12539
3) 1) ""
2) (integer) 6380
3) "447c827edc4fd98e49633bab1ece5ad705b48ac4"
示例输出(旧版本)
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"