• Dockerd搭建redis三主三从&&扩容&&缩容


    Dockerd搭建redis三主三从

    1.创建六个redis容器
    docker run -d --name redis-node-1 --net host --privileged=true -v /data/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
    docker run -d --name redis-node-2 --net host --privileged=true -v /data/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
    docker run -d --name redis-node-3 --net host --privileged=true -v /data/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
    docker run -d --name redis-node-4 --net host --privileged=true -v /data/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
    docker run -d --name redis-node-5 --net host --privileged=true -v /data/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
    docker run -d --name redis-node-6 --net host --privileged=true -v /data/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2.进入容器构建主从关系
    docker exec -it redis-node-1 /bin/bash
    redis-cli --cluster create 172.31.20.134:6381 172.31.20.134:6382 172.31.20.134:6383 172.31.20.134:6384 172.31.20.134:6385 172.31.20.134:6386 --cluster-replicas 1
    
    • 1
    • 2

    –cluster-replicas 1 表示为每个master创建一个slave节点

    3.查看集群状态
    redis-cli -p 6381
    CLUSTER info
    CLUSTER NODES
    redis-cli --cluster check 172.31.20.134:6381
    
    • 1
    • 2
    • 3
    • 4
    4.集群连接
    redis-cli -p 6381 -c
    
    • 1

    扩容

    5.新建主机节点
    docker run -d --name redis-node-7 --net host --privileged=true -v /data/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
    docker run -d --name redis-node-8 --net host --privileged=true -v /data/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
    
    • 1
    • 2
    6.将新增节点加入集群
    docker exec -it  redis-node-7 /bin/bash
    redis-cli --cluster add-node 172.31.20.134:6387 172.31.20.134:6381
    
    • 1
    • 2

    #172.31.20.134:6381 原集群的节点

    7.重新分配槽号
    redis-cli --cluster reshard 172.31.20.134:6381
    4096
    52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
    all
    yes
    
    • 1
    • 2
    • 3
    • 4
    • 5

    #(16384/4=4096四主)

    8.为主节点6387分配从节点6388
    redis-cli --cluster add-node 172.31.20.134:6388 172.31.20.134:6387 --cluster-slave --cluster-master-id 52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
    
    • 1

    #ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id新主机节点ID
    查看集群状态

    缩容

    9.从集群删除从节点6388
    redis-cli --cluster del-node 172.31.20.134:6388 ba6051df75334ba3e64f79aae02d411ed4e2a9c5
    
    • 1

    #最后为从节点ID

    10.将主节点6387槽号清空,重新分配,本例将清出来的槽号都给6381
    redis-cli --cluster reshard 172.31.20.134:6381
    a6fe7315c2e05396c9182de54e12afa0b323f934
    #接收节点槽号ID
    52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
    #释放节点的槽号ID
    done
    yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    11.删除主节点6387
    redis-cli --cluster del-node 172.31.20.134:6387 52a4a9f3f53eb2a18cd664fa9ecc8cca5e930d6c
    
    • 1

    ##最后为主节点ID

    知识来源于大佬zzyybs@126.com

  • 相关阅读:
    2022 IDEA (学生邮箱认证)安装使用教程以及基础配置教程
    C++系列-左移运算符重载
    易灸灸的微商模式,新零售全案运营,裂变营销与代理模式
    LVGL 入门使用教程
    C++语言基础-函数重载
    .NET 8 中的 WPF File Dialog 改进
    13、【创业必备企业架构,可开发任意项目】SpringCloud大型企业分布式微服务云架构源码之MySQL 分组
    数据加载及预处理
    Qt调起Mac“系统设置”面板
    SpringMVC请求(下)-文件上传
  • 原文地址:https://blog.csdn.net/weixin_43055250/article/details/128042263