docker-compose启动redis多机集群的实现(6台服务器3主3从)
目录
- 1. 环境说明
- 2. 集群部署
- redis-node-1
- redis-node-2
- redis-node-3
- redis-node-4
- redis-node-5
- redis-node-6
- 3. 初始化
- 4. 测试
1. 环境说明
| 节点 | IP |
|---|---|
| redis-node-1 | 10.10.239.31 |
| redis-node-2 | 10.10.239.32 |
| redis-node-3 | 10.10.239.33 |
| redis-node-4 | 10.10.239.34 |
| redis-node-5 | 10.10.239.35 |
| redis-node-6 | 10.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容器部署MongoDB并支持远程访问及遇到的坑
本文标题:docker-compose启动redis多机集群的实现(6台服务器3主3从)
本文地址:https://zz.feitang.co/server/32728.html
您可能感兴趣的文章
- 02-02hadoop动态增加和删除节点方法介绍
- 02-02干货 | Linux新手入门好书推荐
- 02-02linux系统下MongoDB单节点安装教程
- 02-02Linux下nginx生成日志自动切割的实现方法
- 02-02Centos 6中编译配置httpd2.4的多种方法详解
- 02-02CentOS7 下安装telnet服务的实现方法
- 02-02分布式Hibernate search详解
- 02-02Hadoop对文本文件的快速全局排序实现方法及分析
- 02-02CentOS6.3添加nginx系统服务的实例详解
- 02-02Hadoop编程基于MR程序实现倒排索引示例


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07解决tomcat启动报错:一个或多个listeners启动失败问题
- 12-07Tomcat启动报错:严重: Unable to process Jar entry [m
- 12-07Tomcat配置IPV6的实现步骤
- 12-07tomcat启动报错jar not loaded的问题
- 12-11docker存储目录迁移示例教程
- 01-07windows server 2008安装配置DNS服务器
- 12-07Tomcat部署war包并成功访问网页详细图文教程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程




