docker-compose启动redis多机集群的实现(6台服务器3主3从)

2023-12-01 0 958
目录
  • 1. 环境说明
  • 2. 集群部署
    • redis-node-1
    • redis-node-2
    • redis-node-3
    • redis-node-4
    • redis-node-5
    • redis-node-6
  • 3. 初始化
    • 4. 测试

      1. 环境说明

      节点IPredis-node-110.10.239.31redis-node-210.10.239.32redis-node-310.10.239.33redis-node-410.10.239.34redis-node-510.10.239.35redis-node-610.10.239.36

      2. 集群部署

      redis-node-1

      yml 文件

      version: \’2.2\’
      services:
      redis-node-1:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-1
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-1:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-01 redis-cluster]# mkdir ./redis-cluster_data-1
      [root@liubei-01 redis-cluster]# chown 1001 ./redis-cluster_data-1

      启动

      [root@liubei-01 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-01 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-1 /opt/bitnami/scripts/redis … Up

      redis-node-2

      version: \’2.2\’
      services:
      redis-node-2:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-2
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-2:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-02 redis-cluster]# mkdir ./redis-cluster_data-2
      [root@liubei-02 redis-cluster]# chown 1001 ./redis-cluster_data-2

      启动

      [root@liubei-02 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-02 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-2 /opt/bitnami/scripts/redis … Up

      redis-node-3

      version: '2.2'

      services:
      redis-node-3:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-3
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-3:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-03 redis-cluster]# mkdir ./redis-cluster_data-3
      [root@liubei-03 redis-cluster]# chown 1001 ./redis-cluster_data-3

      启动

      [root@liubei-03 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-03 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-3 /opt/bitnami/scripts/redis … Up

      redis-node-4

      version: \’2.2\’
      services:
      redis-node-2:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-4
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-4:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-04 redis-cluster]# mkdir ./redis-cluster_data-4
      [root@liubei-04 redis-cluster]# chown 1001 ./redis-cluster_data-4

      启动

      [root@liubei-04 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-04 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-4 /opt/bitnami/scripts/redis … Up

      redis-node-5

      version: '2.2'

      services:
      redis-node-5:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-5
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-5:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-05 redis-cluster]# mkdir ./redis-cluster_data-5
      [root@liubei-05 redis-cluster]# chown 1001 ./redis-cluster_data-5

      启动

      [root@liubei-05 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-05 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-5 /opt/bitnami/scripts/redis … Up

      redis-node-6

      version: '2.2'

      services:
      redis-node-6:
      image: bitnami/redis-cluster:7.0
      restart: always
      container_name: redis-node-6
      network_mode: \”host\”
      volumes:
      – ./redis-cluster_data-6:/bitnami/redis/data
      environment:
      – \’REDIS_PASSWORD=liubei@161\’
      – \’REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36\’

      持久化存储

      因为容器中执行初始化的不是root用户,自动创建挂载文件权限一般会有问题。我这里容器中执行初始化的用户对应宿主机ID是1001的用户,因此提前给了权限(当然你也可以直接给777权限,但不建议)。如果你不是这个用户,可以先给777权限。等容器启动后看初始化后的文件属主是谁,就把该目录的属主改成谁,然后改回755或750权限。

      [root@liubei-06 redis-cluster]# mkdir ./redis-cluster_data-6
      [root@liubei-06 redis-cluster]# chown 1001 ./redis-cluster_data-6

      启动

      [root@liubei-06 redis-cluster]# docker-compose up -d

      查看结果

      [root@liubei-06 redis-cluster]# docker-compose ps Name Command State Ports——————————————————————————————————–redis-node-6 /opt/bitnami/scripts/redis … Up

      3. 初始化

      redis-cli -h 10.10.239.31 -a liubei@161 –cluster create 10.10.239.31:6379 10.10.239.32:6379 10.10.239.33:6379 10.10.239.34:6379 10.10.239.35:6379 10.10.239.36:6379 –cluster-replicas 1

      输出结果和状态查看参考另一篇文档《docker-compose启动redis伪集群》初始化部分。

      4. 测试

      I have no name!@0fc49662e765:/$ redis-cli -h 10.10.239.31 -a liubei@161 -c
      Warning: Using a password with \’-a\’ or \’-u\’ option on the command line interface may not be safe.
      10.10.239.31:6379> set name liubei
      -> Redirected to slot [5798] located at 10.10.239.35:6379
      OK
      10.10.239.35:6379> get name
      \”liubei\”
      10.10.239.35:6379>

      说明:进入10.10.239.31的redis容器,从该节点进入集群,写入数据。显示写入在 10.10.239.35 这个节点同时我们的连接也跳到了这个节点。我们读一下,读到了数据。换一个节点连接,效果相同。

      可参考另一篇文档《docker-compose启动redis伪集群》测试部分。

      到此这篇关于docker-compose启动redis多机集群的实现(6台服务器3主3从)的文章就介绍到这了,更多相关docker-compose redis多机集群内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 Linux服务器 docker-compose启动redis多机集群的实现(6台服务器3主3从) https://www.u-9.cn/server/linux/1071.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务