Redis集群动态增加或者删除节点

2019-11-28 00:22:38 1012 思小齐 思小齐

redis集群动态增加或者删除节点

前言

首先新增需要添加的节点,这里添加7007 和 7008

修改一些配置文件信息,参考集群配置。

在这里插入图片描述

然后启动相应的节点

添加节点到集群

127.0.0.1:7007 是新增节点

127.0.0.1:7001 是已经新增集群节点(这里可以随便写一个已知的集群节点 ip : port

redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7001

添加7007到集群

在这里插入图片描述

查看新增节点

redis-cli -c -p 7001 cluster nodes

在这里插入图片描述

增加了新的节点之后,这个新的节点可以成为主节点或者是从节点。

分配哈希槽(成为主节点)

使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了

redis-trib.rb reshard 127.0.0.1:7001

系统返回信息会提示我们要移动多少哈希槽,这里移动200个

在这里插入图片描述

然后 需要指定把这些哈希槽转移到哪个节点上

当然是转移到新增的节点上

输入我们刚才新增的节点的ID

在这里插入图片描述

选择选择槽的方式

在这里插入图片描述

输入 all 表示从所有的主节点中随机转移,凑够200个哈希槽
然后再输入yes,redis集群就开始分配哈希槽了。

输入 done 表示把指定主节点上的槽分配给新节点.。

打印出随机选择的槽
在这里插入图片描述

输入yesr进行分配
在这里插入图片描述

查看新增主节点

分配成功
在这里插入图片描述

添加从节点

添加7008到集群中去

redis-trib.rb add-node 127.0.0.1:7008 127.0.0.1:7006

在这里插入图片描述

查看

在这里插入图片描述
添加7008成为7007的从节点

登录7008客户端

在这里插入图片描述
执行分配节点

cluster replicate fccadebeb5b769bd084369e5cbe391979fb53b40

fccadebeb5b769bd084369e5cbe391979fb53b40 是 7007 节点 id

查看节点配置

在这里插入图片描述

删除节点

删除主节点

首先要把节点中的哈希槽转移到其他节点中,执行下面的命令

redis-trib.rb reshard 127.0.0.1:7007

提示我们要移动多少哈希槽 ?

输入数字即可

选择接受的槽节点ID?

找一个主节点接受哈希槽即可

选择数据源槽?

输入需要清除的节点ID即可

最后 输入 done

在这里插入图片描述

删除分配
在这里插入图片描述

查看节点信息

7007已经无哈希槽
在这里插入图片描述

最后使用删除节点删除

redis-trib.rb del-node 127.0.0.1:7007 ID ID 是7007的节点ID

在这里插入图片描述

查看节点信息

7007已经被成功删除

在这里插入图片描述

删除从节点

redis-trib.rb del-node 127.0.0.1:7008 ID ID 是7008的节点ID

在这里插入图片描述

查看节点

7008从节点已经没有了
在这里插入图片描述