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

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录1. 环境说明2. 集群部署redis-node-1redis-node-2redis-node-3redis-node-4redis-node-5redis-node-63. 初始化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伪集群》测试部分。

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容