redis:CLUSTER SLOTS

Redis Cluster的CLUSTERSLOTS命令用于获取集群中哈希槽与节点的映射关系,帮助客户端确定命令应发送到哪个实例。返回值包含主节点和从节点的IP、端口信息,以及槽位范围。示例输出展示了不同版本Redis的返回格式差异,新版本还包含了节点ID。此命令适用于集群管理和客户端库实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用

  • 返回有关哪些集群插槽映射到哪些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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值