cluster addslots建立集群
【摘要】 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命令写分析到这里,如果哪里写的不对还请多多指教。
❤️ 感谢大家
如果你觉得这篇内容对你挺有有帮助的话:
- 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
- 关注
盼盼小课堂
,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)