Redis-基于docker构建集群

该文详细介绍了如何在两台服务器上使用Docker部署Redis集群,包括配置文件设置、启动服务、创建集群、主从节点分配、槽位分配、扩容及节点管理等操作。在扩容过程中,新添加了两个主节点,并进行了哈希槽的重新分布和平衡。
摘要由CSDN通过智能技术生成
  • 配置说明
    - 主要两台服务器,一台部署3个服务
    - 使用host网络
    - 主节点ip:192.168.127.140
    - 从节点ip:192.168.127.142
  • 启动服务
    • 在140服务器中
      • 主服务编写配置文件
        mkdir /etc/redis/conf && vi /etc/redis/conf/redis-cluster.conf
        
        protected-mode no
        dir ./
        requirepass 123456
        # 是否启动集群
        cluster-enabled yes
        
      • 启动主服务
        docker run --name redis01 --net host \
          -v /home/redis/redis01/data:/data \
          -v /etc/redis/conf:/etc/redis \
          -d redis redis-server /etc/redis/redis-cluster.conf \
          --port 6379 --cluster-config-file redis-node1.conf
        
        docker run --name redis02 --net host \
          -v /home/redis/redis02/data:/data \
          -v /etc/redis/conf:/etc/redis \
          -d redis redis-server /etc/redis/redis-cluster.conf \
          --port 6380 --cluster-config-file redis-node2.conf
        
        docker run --name redis03 --net host \
          -v /home/redis/redis03/data:/data \
          -v /etc/redis/conf:/etc/redis \
          -d redis redis-server /etc/redis/redis-cluster.conf \
          --port 638 --cluster-config-file redis-node3.conf
        
      • 切换142服务器,继续重复上述操作
    • 组成网络、分配槽位、连接主从
      • 切换140服务器
      docker exec -it redis01 /bin/bash
      
      redis-cli --cluster create 192.168.127.140:6379 192.168.127.140:6380 192.168.127.140:6381 192.168.127.142:6379 192.168.127.142:6380 192.168.127.142:6381 --cluster-replicas 1 -a 123456
      
    命令说明
    cluster-replicas每个主节点有多少从节点
    • 验证
      redis-cli -a 123456
      
      CLUSTER NODES
      
      响应如下:
      bb59f72c5d47b4216eb610e53febef97ab2478e1 192.168.127.142:6380@16380 slave 51f27c9c5e7b7cf423f135f93586606742134976 0 1681377235067 2 connected
      440fbf48413d998462a367658952c9dde7ff2ebc 192.168.127.142:6379@16379 master - 0 1681377234000 4 connected 5461-10922
      851a1c153e8843f8d10850e7fc5a79d932515cd5 192.168.127.140:6381@16381 slave 440fbf48413d998462a367658952c9dde7ff2ebc 0 1681377236069 4 connected
      51f27c9c5e7b7cf423f135f93586606742134976 192.168.127.140:6380@16380 master - 0 1681377234000 2 connected 10923-16383
      f5fbf56ffd39a4fe35954dc24525829b0f7268a8 192.168.127.140:6379@16379 myself,master - 0 1681377234000 1 connected 0-5460
      ec2ed3f9ce25fda6a61630af6bb3f109c9272d6b 192.168.127.142:6381@16381 slave f5fbf56ffd39a4fe35954dc24525829b0f7268a8 0 1681377235000 1 connected
      
  • 扩容
    • 切换140服务器,启动2个服务
    docker run --name redis04 --net host \
      -v /home/redis/redis04/data:/data \
      -v /etc/redis/conf:/etc/redis \
      -d redis redis-server /etc/redis/redis-cluster.conf \
      --port 6382 --cluster-config-file redis-node4.conf
    
    docker run --name redis05 --net host \
      -v /home/redis/redis05/data:/data \
      -v /etc/redis/conf:/etc/redis \
      -d redis redis-server /etc/redis/redis-cluster.conf \
      --port 6383 --cluster-config-file redis-node5.conf
    
    • 切换142服务器,执行上述命令
    • 切换140服务器,完成扩容,添加主节点
      docker exec -it redis01 /bin/bash
      
      redis-cli --cluster add-node 192.168.127.140:6382 192.168.127.140:6379 -a 123456
      
      redis-cli --cluster add-node 192.168.127.142:6382 192.168.127.140:6379 -a 123456
      
      • 重新分片
        redis-cli --cluster reshard 192.168.127.140:6379  --cluster-from f5fbf56ffd39a4fe35954dc24525829b0f7268a8,51f27c9c5e7b7cf423f135f93586606742134976,440fbf48413d998462a367658952c9dde7ff2ebc --cluster-to 0bfac40ea5c0fb3fcc9c1fbd234ca399734939cc --cluster-slots 200 -a 123456
        
        redis-cli --cluster reshard 192.168.127.140:6379  --cluster-from f5fbf56ffd39a4fe35954dc24525829b0f7268a8,51f27c9c5e7b7cf423f135f93586606742134976,440fbf48413d998462a367658952c9dde7ff2ebc --cluster-to 60b94120e0b5e65ae6cde1423ef6aec615b5c72b --cluster-slots 200 -a 123456
        
      • 平衡哈希
        redis-cli --cluster rebalance 192.168.127.140:6379 -a 123456
        
      • 添加从节点
        redis-cli --cluster add-node 192.168.127.140:6382 192.168.127.140:6379 --cluster-slave 0bfac40ea5c0fb3fcc9c1fbd234ca399734939cc -a 123456
        
        redis-cli --cluster add-node 192.168.127.142:6383 192.168.127.140:6379 --cluster-slave 60b94120e0b5e65ae6cde1423ef6aec615b5c72b -a 123456
        
    • 验证
  • 删除节点
    • 注意先备份数据
    • 删除命令
      redis-cli --cluster del-node 192.168.127.140:6382 7df8b73159bda081552b827de6e1d0695df02307 -a 123456
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田秋浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值