• Redis-Cluster集群操作--添加节点、删除节点


    一、环境部署

    部署好Redis-Cluster集群,参考上个本人的博客:Redis-Cluster集群的部署(详细步骤)_是胡也是福的博客-CSDN博客

    新准备一台机器,修改主机名,关闭防火墙和selinux,参考:非关系型数据库Redis的安装_是胡也是福的博客-CSDN博客

    加入解析/etc/hosts

    192.168.85.132  redis-cluster4  7006 7007

    二、添加节点

    1、创建集群节点
    1. [root@redis-cluster4 redis]# mkdir data #创建数据目录
    2. [root@redis-cluster4 redis]# mkdir cluster
    3. [root@redis-cluster4 redis]# mkdir cluster/{7006,7007} #创建集群节点
    4. [root@redis-cluster4 redis]# cp redis.conf cluster/7006/
    5. [root@redis-cluster4 redis]# cp redis.conf cluster/7007/
    2、从redis-cluster1 scp配置文件并修改

    修改内容在上个集群部署的博客中

    Redis-Cluster集群的部署(详细步骤)_是胡也是福的博客-CSDN博客

    3、启动
    1. [root@redis-cluster4 src]# nohup ./redis-server ../cluster/7006/redis.conf &
    2. [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)、先删除从节点
    1. #注意:这个地方需要提一下的就是
    2. 如果要下线节点6,节点7,请务必先下线从节点,并且节点6的slot的迁移到其他节点了,如果先线下节点6的话 会发产生故障切换,节点7成主节点了
    3. 在移除某个redis节点之前,首先不能在登入该节点当中,否则不能正常移除该节点.
    4. 1.退出所有链接的客户端,然后在任意一台机器执行
    5. [root@redis-cluster1 src]# ./redis-cli --cluster del-node 192.168.85.132:7007 87c7e3cdf2c3d9608277d5c059b684757076a72e #该节点的id
    6. >>> Removing node 87c7e3cdf2c3d9608277d5c059b684757076a72e from cluster 192.168.85.132:7007
    7. >>> Sending CLUSTER FORGET messages to the cluster...
    8. >>> Sending CLUSTER RESET SOFT to the deleted node.
    9. [root@redis-cluster1 src]# ./redis-cli -h 192.168.85.135 -c -p 7000
    10. 192.168.85.135:7000> CLUSTER NODES

    2)、后删除主节点

    查看每个槽的数量

    [root@redis-cluster1 src]# ./redis-cli --cluster info 192.168.85.135:7000

    将6节点上面的槽迁移到其他节点

    1. ip+port:要移除的节点
    2. cluster-from:移除节点的id
    3. cluster-to:接受槽主节点的id,需要将4096平均移动到不同的主节点,需要写不同接受槽的主节点id
    4. cluster-slots:移除槽的数量(把7006的槽均给其他三个主节点700270037004
    5. ##给7002
    6. [root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to e2da0df101cc18fc25576ab652a4b37ebab4bf5b --cluster-slots 666 --cluster-yes
    7. ##给7003
    8. [root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to 04932bc2c2e2697677d5e8f4827736958e3ffffe --cluster-slots 666 --cluster-yes
    9. ##给7004
    10. [root@redis-cluster1 src]# ./redis-cli --cluster reshard 192.168.85.132:7006 --cluster-from 0c06d79a8643225a5c91e3d88c498f2b4f78f33e --cluster-to 683e223b87ac930dfa59e5eed7172fc95b84c43e --cluster-slots 667 --cluster-yes
    11. 查看节点信息
    12. 192.168.85.135:7000> CLUSTER nodes

    迁移完成删除该节点即可

    [root@redis-cluster1 src]# ./redis-cli --cluster del-node 192.168.85.132:7006 0c06d79a8643225a5c91e3d88c498f2b4f78f33e
  • 相关阅读:
    Android Apk一键打包上传至蒲公英平台的gradle脚本
    【Verilog练习】多路选择器、译码器、半加器、全加器、寄存器(D触发器)、锁存器(Latch)
    4 第一个程序
    React组件化开发
    电影《前任4:英年早婚》观后感
    Python实现连连看11
    R语言进行孟德尔随机化+meta分析(1)---meta分析基础
    微软坚持Rust语言重写 Windows 11核心
    2022年全球市场中空玻璃密封胶总体规模、主要生产商、主要地区、产品和应用细分研究报告
    【技术驿站】分布式基础与常见面试问题
  • 原文地址:https://blog.csdn.net/qq_45919082/article/details/132630588