redis集群节点的添加和删除

5 篇文章 0 订阅

前面的文章已经搭建好了redis三主三从的集群模式,本文将介绍演示向集群中添加节点

根据新添加节点的种类, 我们需要用两种方法来将新节点添加到集群里面:

如果要添加的新节点是一个主节点, 那么我们需要创建一个空节点(empty node), 然后将某些哈希桶移动到这个空																	节点里面。
另一方面, 如果要添加的新节点是一个从节点, 那么我们需要将这个新节点设置为集群中某个节点的复制品(replica)。
本节将对以上两种情况进行介绍, 首先介绍主节点的添加方法, 然后再介绍从节点的添加方法。

无论添加的是那种节点, 第一步要做的总是添加一个空节点。

一.添加主节点

1.先看看我们之前的集群节点信息,连接上任意一个节点

./redis-cli -h  192.168.214.130  -p  7001  # 要换成自己IP 和端口
 cluster nodes    #查看节点信息

在这里插入图片描述
没错吧,3个主节点,3个从节点

2.添加一个空节点,将上篇文章中的redis01 文件夹复制一份,然后修改redis.conf 文件,把端口修改为7007 ,使用命令 ./redis-server redis.conf 启动节点。

3.执行命令 ./redis-trib.rb add-node new_host:new_port existing_host:existing_port

		说明:
		new_host:需要加入集群的redis服务ip地址 如本例中是:192.168.214.130
        new_port:需要加入集群的redis服务ip端口  如本例中是:7007
	    existing_host:集群中已存在的任何一个redis  ip地址 如本例中的192.168.214.130
	    existing_port:集群中已存在的任何一个redis  端口 如本例中的7001、7002、7003、7004、7005、7006
 ./redis-trib.rb  add-node    192.168.214.130:7007 192.168.214.130:7001    #添加新节点

4 为新节点分配槽(slot)

 ./redis-trib.rb reshard 192.168.214.130:7007  #重新分配slot
How many slots do you want to move (from 1 to 16384)? 5364        #设置slot数5364 这里表示7007 分配5364个slot
What is the receiving node ID? 03ccad2ba5dd1e062464bc7590400441fafb63f2         #新节点node id  
Please enter all the source node IDs.  
 Type 'all' to use all the nodes as source nodes for the hash slots.  
 Type 'done' once you entered all the source nodes IDs.  
Source node #1:all           # all表示全部节点重新分配slot,  # 也可以某个要移动slot数量的节点id
Source node #2:done          # 如果有这步的话,表示分配结束
Do you want to proceed with the proposed reshard plan (yes/no)? yes   #确认重新分 

5.查看集群节点新

 ./redis-trib.rb check 192.168.214.130:7007

删除节点

1.删除从节点

./redis-trib.rb check 192.168.214.130:7001  # 1 查看集群节点信息

# 2节点所在IP,端口,节点ID
./redis-trib.rb del-node 192.168.214.130:7007 476799a70dcaf7ac15428accb3059ef966a6aa26 

2.删除主节点
如果主节点有从节点,将从节点转移到其他主节点
如果主节点有slot,去掉分配的slot,然后在删除主节点

改变从节点的master

	# 1 查看一下7002 的从节点 ,我这里7002 的从节点为7005 #查看一下7002 的从节点 ,我这里7002 的从节点为7005
./redis-cli -h 192.168.214.130 -p 7002 cluster nodes | grep slave | grep 136a7c9a0017b24564d52c8c7b23f4ccf7481ad7
	# 2 连接7005
./redis-cli -h 192.168.214.130 -p 7005
	# 3 指定新的master
 cluster replicate 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052  //新master的node id  

去掉分配的slot

./redis-trib.rb reshard 192.168.214.219:7007  #要删除的节点的IP ,端口

How many slots do you want to move (from 1 to 16384)? 5364     //被删除master的所有slot数量  
What is the receiving node ID? 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 //接收5364节点slot的master  node-id
Please enter all the source node IDs.  
 Type 'all' to use all the nodes as source nodes for the hash slots.  
 Type 'done' once you entered all the source nodes IDs.  
Source node #1:03ccad2ba5dd1e062464bc7590400441fafb63f2 //被删除master的node-id  
Source node #2:done   
  
Do you want to proceed with the proposed reshard plan (yes/no)? yes //取消slot后,reshard  

推荐文章:https://www.cnblogs.com/xlxue/p/7777257.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值