• 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
  • 相关阅读:
    如何设计一个秒杀系统?
    redis的详解和项目应用(一)
    SpringCloudAlibaba系列微服务搭建笔记五_Dubbo
    postgresql模糊查询(like和~)引用变量
    36 | SRE的工作职责
    ES8生产实践——pod日志采集(ELK方案)
    Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)
    Yolov8小目标检测(20):多尺度MultiSEAM,提高特征图的分辨率增强小目标检测能力
    用huggingface.Accelerate进行分布式训练
    el-tooltip使用在dialog中,dialog按ESC关闭后,悬浮不消失情况对应。
  • 原文地址:https://blog.csdn.net/qq_45919082/article/details/132630588