• docker集群主从容错 扩容 缩容


    主从容错

    关掉master节点后 slave节点会替代master节点

    docker ps 
    
    • 1

    在这里插入图片描述

    选择一个节点状态进入 查看集群节点

    docker exec -it redis-node-2 /bin/bash
    redis-cli -p 6382 -c -a foobared
    cluster nodes
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    主6381-从6385
    主6382-从6386
    主6383-从6384

    关掉master节点6381

    docker stop redis-node-1
    
    • 1

    查看集群节点

    docker exec -it redis-node-2 /bin/bash
    redis-cli -p 6382 -c -a foobared
    cluster nodes
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    6381关闭 6385成为master节点

    重启6381节点

    6381成为6385从节点
    在这里插入图片描述

    注意

    如果主节点设置了密码 从节点需要配置masterauth才能实现主从容错机制
    在这里插入图片描述

    扩容

    新增6887 6388节点

    docker run -d --name redis-node-7 --net host --privileged=true   -v /usr/local/software/redis-cluster/config/redis-node-7/redis.conf:/etc/redis/conf/redis.conf  -v /usr/local/software/redis-cluster/data/redis-node-7:/data  redis:6.0.8  redis-server /etc/redis/conf/redis.conf
    docker run -d --name redis-node-8 --net host --privileged=true   -v /usr/local/software/redis-cluster/config/redis-node-8/redis.conf:/etc/redis/conf/redis.conf  -v /usr/local/software/redis-cluster/data/redis-node-8:/data  redis:6.0.8  redis-server /etc/redis/conf/redis.conf
    
    • 1
    • 2

    进入6387实例 将节点添加到集群

    docker exec -it redis-node-7 /bin/bash
    redis-cli --cluster add-node 新增节点ip:6387 集群主节点ip:6381 -a 密码
    
    • 1
    • 2

    在这里插入图片描述

    查看结群节点信息

    redis-cli --cluster check ip:6381
    
    • 1

    此时尚未分配槽号
    在这里插入图片描述

    重新分配槽号

    redis-cli --cluster reshard ip:6381
    
    • 1

    总槽数 16384/节点数 选择要分配的节点ID
    在这里插入图片描述
    分配之后的6387节点 是之前集群中三个节点均匀分配出来的1346个槽点合并
    在这里插入图片描述

    为6387分配slave节点6388

    redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID -a 密码
    
    • 1

    在这里插入图片描述

    缩容

    删除slave节点6388

    redis-cli --cluster del-node ip:从机端口 从机6388节点ID
    
    • 1

    查看节点信息

    redis-cli --cluster check ip:6381 -a 密码

    清空6387槽号 重新分配

    redis-cli --cluster reshard ip:6381 -a 密码
    
    • 1

    填写要操作的槽号数量
    接收的节点ID
    来源ID
    这里全部分配给了6381节点

    在这里插入图片描述

    查看节点信息 重新分槽成功

    redis-cli --cluster check ip:6381
    
    • 1

    在这里插入图片描述

    删除master6387节点

    redis-cli --cluster del-node ip:从机端口 从机6387节点ID
    
    • 1

    停掉 6387 6388

    docker stop redis-node-7 redis-node-8
    
    • 1
  • 相关阅读:
    nginx配置反向代理和动静分离应用
    IntelliJ IDEA中配置Tomcat(超详细)
    arm-linux 应用层调用驱动函数
    电路美之运放
    面试(类加载器)
    2022Q3手机配件增长榜:手机壳、数据线等供求不断增加
    Linux多线程之线程控制
    Leetcode1684:统计一致字符串的数目
    期货开户加1分象征性收取
    基于Lua框架下的合宙ESP32C3+1.5‘’Eink墨水屏天气时钟+OLED开源项目分享
  • 原文地址:https://blog.csdn.net/qq_44407005/article/details/126191968