cluster addslots建立集群

举报
周杰伦本人 发表于 2022/06/26 13:30:07 2022/06/26
【摘要】 cluster addslots建立集群 数据结构 命令使用 总结 ❤️ 感谢大家 cluster addslots建立集群redis群集有16384个时隙位,使用CLUSTER MEET命令构建群集时未分配时隙位。 可以通过发送CLUSTER ADDSLOTS命令将时隙位分配给当前节点集群节点的slots属性用于记录节点负责哪个槽位。 数据结构slots是一个二进制位数组,如果数组索...

cluster addslots建立集群

redis群集有16384个时隙位,使用CLUSTER MEET命令构建群集时未分配时隙位。 可以通过发送CLUSTER ADDSLOTS命令将时隙位分配给当前节点集群节点的slots属性用于记录节点负责哪个槽位。

数据结构

slots是一个二进制位数组,如果数组索引的二进制位值为1,则表示当前节点负责此插槽,否则不负责插槽。 numslots属性存储节点负责的槽位数,这两个属性记录当前节点负责的槽位,并由当前节点通过消息发送到群集中的其他节点。 收到slots数组的节点将数组信息保存在相应节点的clusterNode结构中。

此外,clusterState结构的slots数组也保存了插槽的分配情况。 slots数组有16384个元素,指向元素的指针为空,指示未分配时隙位,而指向一个群集节点结构的指针指示已分配给该时隙位所在的节点。

为什么插槽分配的信息会保存在集群节点的slots数组中,也保存在集群状态的slots数组中?

由于集群节点记录了插槽的分配,但没有记录插槽具体分配给哪个节点,因此请遍历集群状态的nodes词典的集群节点结构,查看slots数组

命令使用

CLUSTER ADDSLOTS命令来完成命令将槽位指定给节点,将集群状态的slots数组中槽位的索引指向当前节点的clusterNode结构,并指定集群节点的slots数组
redis就是通过CLUSTER ADDSLOTS命令来完成槽位的分配的

> CLUSTER ADDSLOTS 1 2 3
OK

这就是通过CLUSTER ADDSLOTS命令来对槽位进行分配,将1 2 3三个槽分配给收到这个命令的服务器。

当槽位被划分好后再进行分配就会报错,就像上边的命令,如果执行成功了再执行一次就会出现错误。

总结

好了,今天cluster addslots命令写分析到这里,如果哪里写的不对还请多多指教。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。