• 3主3从redis集群扩缩容配置案例


    1、环境准备

    #关闭防火墙
    systemctl stop firewalld
    #查看防火墙状态
    systemctl status firewalld
    #拉取redis:6.0.8镜像
    docker pull redis:6.0.8
    

     2、新建6个docker容器redis实例

    docker run -d --name redis-node-1 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
    
    

    • 命令分步解释
    • docker run
    • 创建并运行docker容器实例
    • --name redis-node-6
    • 容器名字
    • --net host
    • 使用宿主机的IP和端口,默认
    • --privileged=true
    • 获取宿主机root用户权限
    • -v /data/redis/share/redis-node-6:/data
    • 容器卷,宿主机地址:docker内部地址
    • redis:6.0.8
    • redis镜像和版本号
    • --cluster-enabled yes
    • 开启redis集群
    • --appendonly yes
    • 开启持久化
    • --port 6386
    • redis端口号

    3、进入容器构建6台机器构建主从集群关系

    #进入容器
    docker exec -it redis-node-1 /bin/bash
    #构建关系
    redis-cli --cluster create 192.168.111.99:6381 192.168.111.99:6382 192.168.111.99:6383 192.168.111.99:6384 192.168.111.99:6385 192.168.111.99:6386 --cluster-replicas 1
    

     4、登录某个阶段,查看集群和节点状态

    #进入某个阶段
    docker exec -it redis-node-6 /bin/bash
    #登录redis
    redis-cli -p 6386 #查看集群状态 cluster info #查看节点状态 cluster nodes

     5、主从容错切换迁移

    #进入reidis容器
    docker exec -it redis-node-6 /bin/bash
    redis-cli --cluster check 192.168.111.99:6386
    

     主从关系为1-4,2-5,3-6

    ****node1宕机,node4成为新的master

    docker stop redis-node-1
    docker exec -it redis-node-2 /bin/bash
    redis-cli -p 6382 -c
    cluster nodes

    ****node1恢复,node1成为slave

    docker start redis-node-1
    cluster nodes

     

     6、集群主从扩容

    #新增两台主机
    docker run -d --name redis-node-7 --net host --privileged=true -v /Users/zhaoshuzhan/data/redis/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 /Users/zhaoshuzhan/data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
    #查看状态
    docker ps
    #进入容器内部
    docker exec -it redis-node-7 /bin/bash
    #将新增节点6387作为master节点加入原集群
    redis-cli --cluster add-node 192.168.111.99:6387 192.168.111.99:6381
    #查看状态
     redis-cli --cluster check 192.168.111.99:6381

    #重新分配槽位
    redis-cli --cluster reshard 192.168.111.99:6381
    #
    redis-cli --cluster check 192.168.111.99:6381
    #从节点加入主节点
    redis-cli --cluster add-node 192.168.111.99:6388 192.168.111.99:6387 --cluster-slave --cluster-master-id 5ca30828ee3e2d671cfbc55010fdfd64b56ee125
    #查看状态
    redis-cli --cluster check 192.168.111.99:6381

     

     

     7、集群主从缩容

    #删除从节点
    redis-cli --cluster del-node 192.168.111.99:6388 0b9640d53d468288b6ec55d62ed4d7948c280329
    #
    redis-cli --cluster check 192.168.111.99:6381
    #请空主节点槽位,重新分配
    redis-cli --cluster reshard 192.168.111.99:6381
    
    #删除主节点
    redis-cli --cluster del-node 192.168.111.99:6387 5ca30828ee3e2d671cfbc55010fdfd64b56ee125
    

     

     

  • 相关阅读:
    SVN
    jenkins可视化
    Tomcat
    防火墙
    keepalived
    MHA高可用
    http
    inotifywait
    DNS
    nginx
  • 原文地址:https://www.cnblogs.com/zszitman/p/16843658.html
Copyright © 2020-2023  润新知