redis集群扩容(添加新节点)

一、创建节点(接上文)

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 密码

执行上述命令后,如图:

 

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

 

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

 

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

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

 

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

 

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

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

 

四、分配哈希槽有两种方式

  (1)将所有节点用作哈希槽的源节点。:all

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

上述使用的是第一种方式分配哈希槽:

现在我们讲一下用第二种方式怎么分配:

1、现在我们对7002端口的另一个master进行分配哈希槽

./src/redis-cli --cluster reshard  ip:port -a 密码

2、这里输入给目录节点选择分配1000个哈希槽,并输入要给哪个节点分配哈希槽,就输入哪个节点的ID

 

 

 3、先输入源节点ID(哈希从哪里来的?),然后再输入done

 

 

正在从源节点迁移哈希槽

 

 

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

Do you want to proceed with the proposed reshard plan (yes/no)?

输入yes

 

 

 5、执行结束后

cluster slots 查看

 

 

 

 五、添加从节点

比如:添加7008节点(slave的添加方法,master为7007)
# 节点ID是主节点的ID
# 127.0.0.1:7008 是新加的从节点
# 127.0.0.1:7007 作为从节点的主节点

./src/redis-cli --cluster add-node --cluster-slave --cluster-master-id db10a9d5c1662d9e3cee21c5776f2e9709f76619 127.0.0.1:7008 127.0.0.1:7007

 

 

 

 

posted @ 2019-11-14 19:27  北向。  阅读(21857)  评论(0编辑  收藏  举报