Redi集群增加删除节点


redis原有集群图
在这里插入图片描述

水平拓展节点(增加节点)

我们现在需要在以上集群的基础上在增加两个节点

服务器 10.0.8.149 端口 9007
服务器 10.0.8.149 端口 9008
并且打算9007作为主节点 9008作为从节点。

增加主节点

1、新建节点文件夹,并复制实例信息

cd /usr/software/redis-cluster
//新建两个节点的文件夹
mkdir redis9007 redis9008
//将之前节点下文件复制到新的节点下
cp  redis9001/*     redis9007
cp  redis9001/*     redis9008

2、删除以前节点的数据信息,不然会导致后面节点添加失败

本示例,redis节点数据存在在对应redis实例的data文件下

cd /usr/software/redis-cluster/redis9007/data
rm -rf *
cd /usr/software/redis-cluster/redis9008/data
rm -rf *

3、修改配置文件

配置基本与之前节点相同,只是端口号更改,我们采用替换方式
vim /usr/software/redis-cluster/redis9007/redis.conf
//替换命令
%s/9001/9007/g
vim /usr/software/redis-cluster/redis9008/redis.conf
//替换命令
%s/9001/9008/g

4、启动两个redis 实例

cd  /usr/software/redis-cluster/redis9007/
src/redis-server redis.conf
cd  /usr/software/redis-cluster/redis9008/
src/redis-server redis.conf

在这里插入图片描述
出现上图表示两个节点启动成功

添加主节点

(1)增加主节点

redis-cli --cluster add-node 10.0.8.149:9007 10.0.8.149:9001 -a redis123456

上面两个地址10.0.8.149:9007标识新增主节点,10.0.8.149:9001原有的主节点
在这里插入图片描述
出现如上图标识节点添加成功
你以为到此就成功了吗,并不然,我们知道redis集群中共有16384个插槽,在我们之前搭建集群的时候已将这16384个插槽都已经分配到了之前的所有主节点上。也就说,现在新的主节点没有插槽,也就没有任何作用,接下来我们开始为该主节点添加插槽。

(2)分配插槽

 redis-cli --cluster reshard 10.0.8.149:9007 -a redis123456

在这里插入图片描述
(3)指定该节点分配多少个插槽数,我们现在又4个主节点,所以平均下大概分配4000个。
在这里插入图片描述
(4)输入指定要分配哈希槽的节点ID,也就是说我们当前那个节点要分配插槽,此处是9007节点要分配插槽,也就是ID
ba15565f65b55a8073e3b99f7739ba04b76665ce;
在这里插入图片描述
在这里插入图片描述
(5)选择分配插槽的来源,输入all ,然后选择yes,即完成插槽分配
在这里插入图片描述
在这里插入图片描述

分配前
在这里插入图片描述
分配后
在这里插入图片描述
分配前后插槽对比
在这里插入图片描述
可以明显的看出9007节点的插槽数都是平均从其他三个节点抽取过来的。
(6)分配哈希槽有两种方式

(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
在这里插入图片描述
以上主节点添加,插槽分配就完成了主节点的添加,下面开始从节点的操作
添加从节点:
在这里插入图片描述
执行如下命令即可

 redis-cli --cluster add-node --cluster-slave  --cluster-master-id ba15565f65b55a8073e3b99f7739ba04b76665ce 10.0.8.149:9008 10.0.8.150:9004 -a redis123456

cluster-master-id是主节点9007redis实例的ID
10.0.8.149:9008 是新加的从节点
10.0.8.150:9004 作为从节点的主节点
出现入下图所示,表示从节点添加成功
在这里插入图片描述
在这里插入图片描述
到此redis集群增加主从节点操作全部完成

移除节点(先从后主)

在这里插入图片描述
我们移除后面新增的节点

移除从节点:

redis-cli --cluster del-node 10.0.8.149:9008 31f576e04b8b9ae8f10eff644bb5722f20937317 -a redis123456

10.0.8.149:9008 从节点地址
31f576e04b8b9ae8f10eff644bb5722f20937317 从节点ID
在这里插入图片描述
出现上图表示从节点移除成功,我们可以通过查看集群节点,验证节点是否移除成功

在这里插入图片描述

移除主节点

删除主节点,稍微比删除主节点麻烦些,应为主节点中有插槽数据,在删除主节点前需要 将插槽分配其他节点,否则会出现数据丢失

迁移插槽数据

redis-cli --cluster reshard 10.0.8.149:9007 -a redis123456

10.0.8.149:9007 删除节点信息

在这里插入图片描述
9007总共有4000个插槽,我们需要将其平均的分配到其他3台主节点上
在这里插入图片描述
首先将9007上的1333个插槽迁移至9001节点上
How many slots do you want to move (from 1 to 16384)? 1333
在这里插入图片描述
Do you want to proceed with the proposed reshard plan (yes/no)? yes
执行成功后,查看节点插槽数
迁移成功后插槽数
在这里插入图片描述
依次类推将9007剩下的节点分别迁移到9002,9006
9007到9002节点
在这里插入图片描述
同理完成插槽迁移后的节点详情

在这里插入图片描述
在这里插入图片描述
出现上图上面9007节点插槽数据已经迁移完毕,可以移除节点。

redis-cli --cluster del-node 10.0.8.149:9007 ba15565f65b55a8073e3b99f7739ba04b76665ce -a redis123456

10.0.8.149:9007 需要移除节点
ba15565f65b55a8073e3b99f7739ba04b76665ce 节点ID

在这里插入图片描述
查看redis集群节点验证节点是否移除
在这里插入图片描述
到此,完成了集群的增加和移除节点的全部操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值