标签:更新 http 个数 一个 数组 开启 部分 命令执行 oss
1. 一个集群会包含多个节点(一个节点就是一个reid是服务器),CLUST MEET <ip><port>可以添加一个node到集群,命令执行后,两个node之间就会进行握手,握手成功构成集群
2.节点(即redis服务器)启动时,将cluster-enable配置为YES,来决定是否开启服务器的集群模式,开启的node功能如下
3.集群数据结构
CLUSTER MEET的流程,在两个node进行了握手后,发起者NODE A会发送gossip协议消息给所有集群里的其他nodes,他们一一和NODE B进行握手,完成整个集群的配置。
4. 槽指派
所谓槽,就是对每次键值请求,对键进行散列,散列到一个槽,然后通过槽的指派,找到槽对应的那个node,就由这个node来负责处理这次请求。
REDIS有16384个槽,数据库中每个键都属于这个槽,而每个槽都要有node来处理,只有所有槽都被集群里的node处理了,集群才算上线。
下面命令是分配0-5000给指定的node
CLUSTER ADD SLOT <SLOT> [SLOT......] :cluster add slot 0 1 2 3 4 ... 5000
clusterNode结构用来记录它负责哪些槽,其中slots是一个数组,数组的一个元素占用一个字节,储存8个槽位,即每个bit代表是否管理对应的槽(1为管理),
某个node配置了它所管理的槽位后,会通知集群的其他node,每个node的clusterState.node结构里会记录集群里其他的node(clusterNode结构),然后更新这个结构里的slots数组,这样在任何一个node,都能知道集群里整个slot是如何分配的,哪些node管理哪些槽位
标签:更新 http 个数 一个 数组 开启 部分 命令执行 oss
原文地址:http://www.cnblogs.com/jiangz222/p/7113454.html