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

Redis集群动态增加或者删除节点,第1张

首先新增需要添加的节点,这里添加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从节点已经没有了

Redis常用的删除策略有以下三种:

被动删除(惰性删除):当读/写一个已经过期的Key时,会触发惰性删除策略,直接删除掉这个Key

主动删除(定期删除):Redis会定期巡检,来清理过期Key;

当内存达到maxmemory配置时候,会触发Key的删除 *** 作;

另外,还有一种基于触发器的删除策略,因为对Redis压力太大,一般没人使用。

-


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11850024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存