redis-cluster集群添加节点、删除节点

原文地址,转载请注明出处: http://blog.csdn.net/qq_34021712/article/details/72150526     ©王赛超

1.添加节点



1.1:重新搭建集群



之前安装的集群有三个节点,每个节点有一备份节点。为了方便测试,将之前的每个redis节点下的dump.rdb 和nodes.conf删掉,重新搭建一个只有三个master的集群(7001,7002,7003)
重新启动三个master节点后重新执行脚本来搭建集群
./redis-trib.rb create --replicas 0 192.168.17.168:7001 192.168.17.168:7002 192.168.17.168:7003

1.2:启动7004节点,添加为主节点

1)添加为主节点
redis-trib.rb add-node 192.168.17.168:7004 192.168.17.168:7001
注释:
192.168.17.168:7004是新增的节点
192.168.17.168:7001是集群中任一旧节点


2)连接集群,执行cluster nodes 查看集群状态


3)显示已经添加到集群中,但是并没有哈希槽,给他分配哈希槽
./redis-trib.rb reshard 192.168.17.168:7001  #这个节点是集群中任一节点都可以,只要能连上就可以

过程:
How many slots do you want to move (from 1 to 16384)? 1000  #输入1000表示要移动1000个哈希槽


What is the receiving node ID?   #把这1000个哈希槽给谁呢?输入7004节点对应的id


Source node #1: all    #输入all表示从所有的哈希槽拥有者中抽取1000个给7004节点
也可以从固定的节点中拿100个 Source node #1: 339a50df26f4722f14faba2a8fe3cad508059e88    #输入某个节点的id表示 从该节点上拿1000个 给7004这个节点 然后再执行done命令


我们选择all 摁回车会展示分配槽的信息,再输入yes 回车就分配完成了。



1.3:启动7005节点,添加为从节点

之前的7004已经添加为master了就不动它了
1)添加为从节点
./redis-trib.rb add-node --slave --master-id 339a50df26f4722f14faba2a8fe3cad508059e88 192.168.17.168:7005 192.168.17.168:7001
注释:
--slave,表示添加的是从节点
--master-id 339a50df26f4722f14faba2a8fe3cad508059e88,主节点的node id,这个id是7001的节点id 表示将新节点添加为7001的slave
192.168.17.168:7005,新节点
192.168.17.168:7001集群任一个旧节点
添加slave 不需要分配哈希槽





2.改变从节点的master



1)比如我们要将刚才的将7005添加为7001的从节点,现在将他修改为7003的从节点


2)连接7005端口
./redis-cli -h 192.168.17.168 -p 7005 -c  #连接要修改的从节点


3)移动到新的主节点
cluster replicate 3dd56b46572e1d1c1edece5e73ff4edf54485b09    #3dd56b46572e1d1c1edece5e73ff4edf54485b09为新的主节点node id




3.删除节点



3.1删除从节点



1)直接删除就可以了
./redis-trib.rb del-node 192.168.17.168:7005 081057b99f96b02ecad64ce6e4ab92c9d494a170
注释:
192.168.17.168:7005  要删除的从节点IP 端口号
081057b99f96b02ecad64ce6e4ab92c9d494a170  要删除从节点的 node id


3.2删除主节点



如果主节点有从节点,将从节点转移到其他主节点
如果主节点有slot,去掉分配的slot,然后在删除主节点
1)我们移除上面添加的7004主节点
2)取消分配的slot,下面是主要过程
./redis-trib.rb reshard 192.168.17.168:7004  #要移除的主节点ip 端口号


过程:
How many slots do you want to move (from 1 to 16384)? 1000  #移除多少个哈希槽,7004有1000个 全部移走
What is the receiving node ID? 339a50df26f4722f14faba2a8fe3cad508059e88 //接收7004节点slot的master  我们用7001来接收
Source node #1:d33aba61b519cbc0b5d7f33b825863d8f78a8925 //被删除master的node-id  
Source node #2:done  
Do you want to proceed with the proposed reshard plan (yes/no)? yes //取消slot后,reshard 


3)执行第二步之后,7004节点的哈希槽就没有了,然后删除该7004节点
./redis-trib.rb del-node 192.168.17.168:7004 d33aba61b519cbc0b5d7f33b825863d8f78a8925



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值