• 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

  • 相关阅读:
    无胁科技-TVD每日漏洞情报-2022-8-4
    pycharm转移缓存目录
    数据库优化(8月27号)
    实践和项目:解决实际问题时,选择合适的数据结构和算法
    uniapp配置小程序分包、路由系统跳转、
    B2B结算场景拆解|数商云B2B电商系统助力新能源汽车产业数字化转型
    ABAP 调用HTTP上传附件
    【飞桨PaddleSpeech语音技术课程】— 语音合成
    MySQL的自增id会用完吗?用完怎么办?
    【数据结构】顺序表+链表
  • 原文地址:https://blog.csdn.net/weixin_43055250/article/details/128042263