其中 , 第一个参数是新的Redis节点的IP和端口 , 第二个参数是任意一个已经存在的Redis节点的IP和端口 。 执行之后效果如下:
上面命令执行成功之后 , 新的节点就已经添加到集群中了 , 可以通过cluster nodes命令查看:
但此时 , 这个新的master节点上是没有分配任何哈希槽的 , 我们还需要使用下面命令重新分配master节点的哈希槽:
redis-cli --cluster reshard 192.168.31.79:7006 --cluster-from 已有节点id , 多个id之间使用半角逗号分隔 --cluster-to 新节点id --cluster-slots 新节点的哈希槽数量
其中 , 节点id可以从cluster nodes结果中查看:
此处 , 我们需要将之前已存在的3个master节点上的部分哈希槽重新分配给新的节点 , 执行后结果如下:
输入yes确认后 , 结果如下 , 可以看到哪些哈希槽被分配到了新节点:
此时 , 就可以用该节点操作数据了:
●添加一个slave节点:添加slave节点与添加master节点差不多 , 我们首先在一台虚拟机上启动一个端口为7007的Redis实例 , 然后执行下面的命令将该Redis实例添加到集群中:
./bin/redis-cli --cluster add-node --slave 192.168.31.79:7007 192.168.31.77:7000 --cluster-master-id 0a55dba682340a513cce51a626e81c1789423249
其中 , --slave表示添加的是slave节点 , 192.168.31.79:7007是要添加的新节点 , 192.168.31.77:7000是集群中任意一个节点 , --cluster-master-id后面跟的是新的slave节点要添加到哪个master节点下面 , 此处 , 我们将新的slave节点添加到192.168.31.79:7006这台master节点下 。 执行结果如下:
此时 , cluster nodes结果中可以看到新的节点已经加入集群中了:
并且 , 使用新的节点也可以正常查询数据:
从Redis集群中移除节点移除集群中某个节点也分两种情况:移除master节点和移除slave节点 。
●移除master节点:由于master节点上分配的有哈希槽 , 所以当移除某个master节点之前 , 需要先将该节点上的哈希槽分配到其他节点上 , 然后在移除该节点 。
首先通过下面命令重新分配哈希槽:
redis-cli --cluster reshard 192.168.31.79:7006
其中 , 192.168.31.79:7006表示要删除的master节点地址和端口 。
然后 , 执行下面命令移除该节点:
redis-cli --cluster del-node 192.168.31.79:7006 节点id 。
●移除slave节点:移除slave节点比较简单 , 直接执行下面命令移除即可:
【pong|Redis高可用架构—Redis集群(Redis Cluster)详细介绍】redis-cli --cluster del-node 192.168.31.79:7007 节点id
其中 , 192.168.31.79:7007表示要删除的slave节点地址和端口 , 节点id表示该节点的id 。
点关注不迷路 , 跟我一起学技术!
- 显示器|Redis高可用架构—哨兵(sentinel)机制详细介绍
- VMware|Redis高可用方案—主从(masterslave)架构
- 删除|一文读懂Redis内存淘汰策略
- var|Redis:在windows环境安装Redis
- 节点|统信正式推出高可用集群部署管理软件统信有备(UHA)
- CPU|Redis 7.0 Multi Part AOF 的设计和实现
- |一、Linux编译安装Redis
- 数据|央行:全面加强数据能力建设,建设绿色高可用数据中心
- 东南亚|直播一小时GMV破5W美元,TikTok服务商PONGO看好东南亚直播电商
- 客户端|GitLab 14.6发布,优化了Geo高可用以及安全更新等