redis 集群分配哈希曹
重新分配哈希曹:
ip:port 为当前redis集群任意节点ip和port
redis-cli --cluster reshard ip:port
操作如图:
分配哈希槽有两种方式:
1、在其他节点拿出适量的哈希槽分配到目标节点
2、在指定的节点拿出指定数量的哈希槽分配到目标节点
如上图端口号为7005的主节点哈希槽的数量为0,为它分配300个哈希槽:
How many slots do you want to move (from 1 to 16384)? 这里输入你要分配的哈希槽的数量(如上图)
What is the receiving node ID? 这里输入将上一步输入指定数量的哈希槽分配给那个节点,输入节点id(如上图)
这里是在让你选择需要分配的哈希槽来源,有两种选择:
1、输入all 需要分配给目标节点的哈希槽来着当前集群的其他主节点(每个节点拿出的数量为集群自动决定,上图就是这种方式来完成的!)
效果(原7005端口的主节点哈希槽数量为0):
2、输入某个节点的id,这种情况下,需要分配给目标节点的哈希槽就由该节点全部承担(节点id可以输入多个,回车分割,输入done结束)。
使用第二种方式分配哈希槽:
现在7005端口的节点哈希槽为300,使用第二种方式为其分配,再增加100,这100的哈希槽再7002端口的节点上拿
查看效果:
当前7005端口的主节点为400哈希槽!