首页 > 技术文章 > redis集群添加新节点

yfacesclub 2019-11-14 12:12 原文

一、创建节点(接上文)

1、在H1服务器/root/soft目录下创建7002目录

2、将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口

3、进入 redis-5.0.5 目录下,执行启动命令  

./src/redis-server ../7002/redis.conf

4、进入H2创建7002的salve,步骤与前三个步骤一样

 

二、添加节点

1、第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口;先后执行以下命令:

./src/redis-cli --cluster add-node 172.26.237.83:7002 172.26.237.83:7000 -a 0123456789
./src/redis-cli --cluster add-node 172.26.237.84:7002 172.26.237.83:7000 -a 0123456789

 

 

2、在H1进入redis客户查看集群的健康状态和节点状态

 

 

三、分配哈希槽

注意:新添加的节点是没有哈希曹的,所以并不能正常存储数据,需要给新添加的节点分配哈希曹:

 1、重新分配哈希槽

# ip:port 为当前redis集群任意节点ip和port,-a后面加密码
./src/redis-cli --cluster reshard ip:port -a 密码

执行上述命令后,如图:

 

 

 

分配哈希槽有两种方式:

  (1)在其他节点拿出适量的哈希槽分配到目标节点:输入all 需要分配给目标节点的哈希槽来着当前集群的其他主节点(每个节点拿出的数量为集群自动决定)

  (2)在指定的节点拿出指定数量的哈希槽分配到目标节点:done

我现在使用第一种方式分配哈希槽:

 

2、输入要分配多少个哈希槽(数量)?比如我要分配1000个哈希槽

 

 3、输入指定要分配哈希槽的节点ID,如上上图端口号为7002的两个master节点哈希槽的数量为0(选择任意一个节点作为目标节点进行分配哈希槽);

 

 4、选择需要分配的哈希槽来源,输入all

 

 是否继续执行建议的reshard计划

 

 输入yes后,就会完成分配哈希槽:

(1)进入redis客户端cluster slots 查看(7002端口的主节点的原哈希槽数量为0)

 

 

推荐阅读