一、环境部署
部署好Redis-Cluster集群,参考上个本人的博客:Redis-Cluster集群的部署(详细步骤)_是胡也是福的博客-CSDN博客
新准备一台机器,修改主机名,关闭防火墙和selinux,参考:非关系型数据库Redis的安装_是胡也是福的博客-CSDN博客
加入解析/etc/hosts
192.168.85.132 redis-cluster4 7006 7007
二、添加节点
1、创建集群节点
[root@redis-cluster4 redis]# mkdir data #创建数据目录
[root@redis-cluster4 redis]# mkdir cluster
[root@redis-cluster4 redis]# mkdir cluster/{7006,7007} #创建集群节点
[root@redis-cluster4 redis]# cp redis.conf cluster/7006/
[root@redis-cluster4 redis]# cp redis.conf cluster/7007/
2、从redis-cluster1 scp配置文件并修改
修改内容在上个集群部署的博客中
Redis-Cluster集群的部署(详细步骤)_是胡也是福的博客-CSDN博客
3、启动
[root@redis-cluster4 src]# nohup ./redis-server ../cluster/7006/redis.conf &
[root@redis-cluster4 src]# nohup ./redis-server ../cluster/7007/redis.conf &
4、开始添加节点:将cluster4添加到集群中
[root@redis-cluster4 src]# ./redis-cli --cluster add-node 192.168.85.132:7006 192.168.85.138:7004
5、查看集群节点信息(随便登陆一个客户端即可)
6、给新节点进行hash槽分配,这样该主节才可以存储数据,(如果有数据记得提前先将数据同步然后在从其他节点迁移槽到新节点。)
[root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006
三、删除节点
1、注意
如果要下线节点6,节点7,请务必先下线从节点,并且节点6的slot的迁移到其他节点了,如果先线下节点6的话 会发产生故障切换,节点7成主节点了。
在移除某个redis节点之前,首先不能在登入该节点当中,否则不能正常移除该节点。
2、操作
1)、先删除从节点
#注意:这个地方需要提一下的就是
如果要下线节点6,节点7,请务必先下线从节点,并且节点6的slot的迁移到其他节点了,如果先线下节点6的话 会发产生故障切换,节点7成主节点了
在移除某个redis节点之前,首先不能在登入该节点当中,否则不能正常移除该节点.
1.退出所有链接的客户端,然后在任意一台机器执行
[root@redis-cluster1 src]# ./redis-cli --cluster del-node 192.168.85.132:7007 87c7e3cdf2c3d9608277d5c059b684757076a72e #该节点的id
>>> Removing node 87c7e3cdf2c3d9608277d5c059b684757076a72e from cluster 192.168.85.132:7007
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.
[root@redis-cluster1 src]# ./redis-cli -h 192.168.85.135 -c -p 7000
192.168.85.135:7000> CLUSTER NODES
2)、后删除主节点
查看每个槽的数量
[root@redis-cluster1 src]# ./redis-cli --cluster info 192.168.85.135:7000
将6节点上面的槽迁移到其他节点
ip+port:要移除的节点
cluster-from:移除节点的id
cluster-to:接受槽主节点的id,需要将4096平均移动到不同的主节点,需要写不同接受槽的主节点id
cluster-slots:移除槽的数量(把7006的槽均给其他三个主节点7002、7003、7004)
##给7002
[root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to e2da0df101cc18fc25576ab652a4b37ebab4bf5b --cluster-slots 666 --cluster-yes
##给7003
[root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to 04932bc2c2e2697677d5e8f4827736958e3ffffe --cluster-slots 666 --cluster-yes
##给7004
[root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to 683e223b87ac930dfa59e5eed7172fc95b84c43e --cluster-slots 667 --cluster-yes
查看节点信息
192.168.85.135:7000> CLUSTER nodes
迁移完成删除该节点即可
[root@redis-cluster1 src]# ./redis-cli --cluster del-node 192.168.85.132:7006 0c06d79a8643225a5c91e3d88c498f2b4f78f33e