动态增加/删除 redis-cluster集群主从节点

1、使用trib的check命令检查当前集群节点状态

$ redis-trib.rb check 192.169.0.175:700

2、新增两个节点。注意,新增节点最好为偶数个,保持节点为奇数,选择时不会出现平票现象

#拷贝四个配置文件,增加两个主节点和两个从节点
cd /usr/local/redis-4.0.14
cp redis.conf  /usr/local/redis-4.0.14/redis_cluster/7006
cp redis.conf  /usr/local/redis-4.0.14/redis_cluster/7007
cp redis.conf  /usr/local/redis-4.0.14/redis_cluster/7008
cp redis.conf  /usr/local/redis-4.0.14/redis_cluster/7009
#编辑每个节点的配置文件
cd redis_cluster/7006         ----对7007,7008,7009做相同的操作修改配置
vim redis.conf                ----具体修改哪些内容参照二
#启动这四个节点
cd /usr/local/redis-4.0.14
redis-server redis_cluster/7006/redis.conf
redis-server redis_cluster/7007/redis.conf
redis-server redis_cluster/7008/redis.conf
redis-server redis_cluster/7009/redis.conf
#检查节点是否启
ps -ef | grep redis
netstat -tnlp | grep redis           ---检要节点的启动情况

3、添加主节点

$ redis-trib.rb add-node 192.169.0.175:7006  192.169.0.175:7000    ----7000这个节点可以是任意的原集群主节点
#注释:
    192.168.10.219:6378是新增的节点
    192.168.10.219:6379集群任一个旧节点
#为新添加的节点分配slot,redis的solt是固定16384个,新添加的节点是没有slot的,只能从其他节点获取slot进行分配
$ redis-trib.rb reshard 192.169.0.175:7006
    How many slots do you want to move (from 1 to 16384)?  2500  ----新节点接收的节点数
    What is the receiving node ID?  364ae8322ab2627e25b05d45b702448c74afad10    ----接收的节点,新节点的redis-ID
    Please enter all the source node IDs.(Type 'all' to use all the nodes as source nodes for the hash slots)  all
    Resharding plan:
        Moving slot 5461 from 273107e5ac994d675749be0979556e761274bb93
        Moving slot 5469 from 273107e5ac994d675749be0979556e761274bb93
    Do you want to proceed with the proposed reshard plan (yes/no)?   yes
    Moving slot 5461 from 192.169.0.175:7000 to 192.169.0.175:7006...
    #检查新添加节点分配置的slot
    $ redis-cli -h 192.169.0.175 -c -p 7006
    $ cluster nodes
    364ae8322ab2627e25b05d45b702448c74afad10 192.169.0.175:7006 myself,master - 0 0 7 connected 0-98 5461-5561 10923-11021
#以上可以看出7006节点分配置到slot为0-98,5461-5561,10923-11021

4、添加从节点

4.1、直接通过追加从节点的方式添加
$ redis-cli -c -p 7007 cluster replicate 0b00721a509444db793d28448d8f02168b94bd38   ----把7007这个节点变为7006的slave节点
4.2、通过直接添加从节点方式添加
$ redis-trib.rb add-node --slave --master-id 2b7bb3be16460f2e0848c69cef3acc68f655a041 192.169.0.175:7008  192.169.0.175:7000
#注释:
    --slave,表示添加的是从节点
    --master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主节点的node id,在这里是前面新添加的6378的node id
    192.168.10.220:6385,新节点
    192.168.10.219:6379集群任一个旧节点
这种方式可以随意添加从节点,一个主节点可以有多个从节点

5、另一个节点的添加重复3、4步骤

$ redis-trib.rb reshard 192.169.0.175:7008

6、删除从节点

$ redis-trib.rb del-node 192.169.0.175:7002  '9c240333476469e8e2c8e80b089c48f389827265' 

7、删除主节点

#删除主节点要把从节点挂到其他节点,并去掉分配的所有slot
$ redis-trib.rb reshard 192.169.0.175:7000  ---重新分配置这个主节点的slot
    How many slots do you want to move (from 1 to 16384)? 5461    -----被删除master的所有slot数量,这个数量可通过cluster nodes查出
    What is the receiving node ID?  5d8ef5a7fbd72ac586bef04fa6de8a88c0671052  ----接收7000节点slot的master
    Please enter all the source node IDs.  
    Source node #1:364ae8322ab2627e25b05d45b702448c74afad10  -----被删除master的node-id 
    Source node #2:done
$ redis-trib.rb del-node 192.169.0.175:7000 '03ccad2ba5dd1e062464bc7590400441fafb63f2' -----最后才能删除这个空掉的节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值