• 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
  • 相关阅读:
    用更多的钱买电脑而不是手机
    MySQL第七讲·怎么利用聚合函数实现高效地分组统计?
    python實現圖片下載
    【owt-server】m88分支和m59-server
    数据结构-线性表与链性表(二)
    【网络安全】网络安全的最后一道防线——“密码”
    算法题笔记 6-10 (青蛙跳台阶)
    【网络编程】一文带你搞懂HTTPS协议
    linux启动minicom、u-boot的常用命令、网络命令tftp、nfs/根文件系统、u-boot的bootargs环境变量
    【oppenvino】使用docker安装openvino并进行onnx到IR中间件的转化
  • 原文地址:https://blog.csdn.net/qq_44407005/article/details/126191968