redis集群——删除节点

想要删除集群节点中的某一个节点,需要严格执行2步:

1、 将这个节点上的所有插槽转移到其他节点上
2、 使用 Redis-trib.rb 删除节点


下面 假设我们要删除 6382 这个节点为例


1、 将这个节点上的所有插槽转移到其他节点上


1.1、查看集群节点情况:

[plain] view plain copy
print ?
  1. /usr/local/bin/redis-cli   
  2.   
  3. cluster nodes  
/usr/local/bin/redis-cli 

cluster nodes

redis集群——删除节点_第1张图片


2.2、 调整插槽

a )   在    /my_soft/redis安装包及jar包/redis-3.0.4/src    目录下执行脚本:

[plain] view plain copy
print ?
  1. ./redis-trib.rb reshard  192.168.3.15:6382   
./redis-trib.rb reshard  192.168.3.15:6382 

b )   选择需要转移的插槽的数量,因为 6382 上 有 100 个插槽,所以转移 100 个。

c )   接收 转移的节点的id,我们转移到 6379 节点:904cfd517c446a9546a90cfafcc86f820b0883ab

d ) 输入插槽来源id,也就是6382的id : a3c45f11019e14bfabe47e7c4060772c473e86b3

e ) 输入done,开始转移


redis集群——删除节点_第2张图片



f ) 查看集群信息

可以 看到6382 节点上已经没有插槽了。

[plain] view plain copy
print ?
  1. /usr/local/bin/redis-cli   
  2.   
  3. cluster nodes  
/usr/local/bin/redis-cli 

cluster nodes


redis集群——删除节点_第3张图片


2、 使用 redis-trib.rb 删除节点


2.1、redis-trib.rb 语法命令

[plain] view plain copy
print ?
  1. del-node host:port node_id  
del-node host:port node_id


2.2、删除节点

[plain] view plain copy
print ?
  1. ./redis-trib.rb del-node 192.168.3.15:6382 a3c45f11019e14bfabe47e7c4060772c473e86b3  
./redis-trib.rb del-node 192.168.3.15:6382 a3c45f11019e14bfabe47e7c4060772c473e86b3


redis集群——删除节点_第4张图片


2.3、查看集群

执行命令:

[plain] view plain copy
print ?
  1. /usr/local/bin/redis-cli   
  2.   
  3. cluster nodes  
/usr/local/bin/redis-cli 

cluster nodes




可以看到集群中已经没有了6382 这个节点了。


你可能感兴趣的:(redis,redis)