Docker-Compose搭建Redis集群的实现教程
目录
- 1. 集群配置
- 2.编写redis.conf
- 3. 在每个redis-*文件夹下创建redis.conf文件,并写入如下内容:
- 4.编写docker-compose.yml文件
- 5.开启集群
- 6.测试
- 6.1 查看节点属性
- 6.2 查看节点信息
- 6.3 插入一个值
- 7.添加密码:
- 7.1 编辑redis.conf文件
- 7.2 编辑docker-compose.yml文件
- 7.3 连接集群
1. 集群配置
- 3主+3从
- 由于仅用于测试,故我这里只用1台服务器进行模拟
redis列表

2.编写redis.conf
在server上创建一个目录用于存放redis集群部署文件。这里我放的路径为/root/redis-cluster
在/opt/docker/redis-cluster目录下创建redis-1,redis-2,redis-3,redis-4,redis-5,redis-6文件夹
mkdir -p /opt/docker/redis-cluster/{redis-1,redis-2,redis-3,redis-4,redis-5,redis-6}
#创建持久化目录
mkdir -p /opt/docker/redis-cluster/redis-1/data
mkdir -p /opt/docker/redis-cluster/redis-2/data
mkdir -p /opt/docker/redis-cluster/redis-3/data
mkdir -p /opt/docker/redis-cluster/redis-4/data
mkdir -p /opt/docker/redis-cluster/redis-5/data
mkdir -p /opt/docker/redis-cluster/redis-6/data
3. 在每个redis-*文件夹下创建redis.conf文件,并写入如下内容:
cluster-enabled yes # 开启集群 cluster-config-file nodes.conf # 集群配置文件 cluster-node-timeout 5000 # 集群节点多少时间未响应视为该节点丢失 appendonly yes port 6379 # redis监听端口 masterauth passwd123 #设置master节点密码 requirepass passwd123 #设置密码
注意:port值不能都为6379,根据上面redis列表设置的端口号,依次给redis-1 ~ redis-6设置6379~6384端口号
4.编写docker-compose.yml文件
这里直接使用daocloud提供的redis镜像地址daocloud.io/library/redis:6.0.4
在/root/redis-cluster文件夹下创建docker-compose.yml文件。
docker-compose.yml文件内容如下:
version: '3.1'
services:
# redis1配置
redis1:
image: daocloud.io/library/redis:6.0.4
container_name: redis-1
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-1/data:/data
- /opt/docker/redis-cluster/redis-1/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
# redis2配置
redis2:
image: daocloud.io/library/redis:6.0.4
container_name: redis-2
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-2/data:/data
- /opt/docker/redis-cluster/redis-2/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
# redis3配置
redis3:
image: daocloud.io/library/redis:6.0.4
container_name: redis-3
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-3/data:/data
- /opt/docker/redis-cluster/redis-3/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
# redis4配置
redis4:
image: daocloud.io/library/redis:6.0.4
container_name: redis-4
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-4/data:/data
- /opt/docker/redis-cluster/redis-4/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
# redis5配置
redis5:
image: daocloud.io/library/redis:6.0.4
container_name: redis-5
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-5/data:/data
- /opt/docker/redis-cluster/redis-5/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
# redis6配置
redis6:
image: daocloud.io/library/redis:6.0.4
container_name: redis-6
restart: always
network_mode: "host"
volumes:
- /opt/docker/redis-cluster/redis-6/data:/data
- /opt/docker/redis-cluster/redis-6/redis.conf:/usr/local/etc/redis/redis.conf
command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
启动容器,执行命令:
#启动容器 docker-compose -f xxx.yaml up -d

5.开启集群
随便找一个容器进入,这里我选择redis-1进入。 在进入容器后,输入如下命令开启集群:
redis-cli --cluster create 192.168.66.180:6379 \ 192.168.66.180:6380 \ 192.168.66.180:6381 \ 192.168.66.180:6382 \ 192.168.66.180:6383 \ 192.168.66.180:6384 \ --cluster-replicas 1

出现下图即为成功。

6.测试
使用redis-cli命令,连接集群中任意节点。(随便找一台能ping通集群所在IP的电脑,这里我用的本机进行测试)
6.1 查看节点属性
redis-cli -c -h 192.168.66.180 -p 6379 192.168.66.180:6379> cluster info
显示为如下图,即为集群健康状态

6.2 查看节点信息
cluster nodes

注意看图中的slave,master,myself等关键字。

6.3 插入一个值
192.168.66.180:6379> set test 'hello world' -> Redirected to slot [6918] located at 192.168.66.180:6380 OK 192.168.66.180:6380>

注意:这里根据切片自动切换到了该数据分片所在的节点上,所以下面可以看到连接的节点变为了192.168.1.4:6380
get test
168.66.180:6379> set test 'hello world' -> Redirected to slot [6918] located at 192.168.66.180:6380 OK 192.168.66.180:6380> get test "hello world" 192.168.66.180:6380>
这里因为就是在该数据所在分片上进行的查询,所以连接节点没有改变。
7.添加密码:
7.1 编辑redis.conf文件
#为redis.conf文件添加如下配置。这里设置密码为123456 masterauth 123456 requirepass 123456
7.2 编辑docker-compose.yml文件
#为docker-compose.yml中每个容器添加如下配置: environment: - REDISCLI_AUTH=123456
7.3 连接集群
redis-cli -c -h 192.168.66.180 -p 6379 -a 123456
上一篇:Docker制作镜像的两种方式(在线制作和离线制作)
栏 目:其它服务器
本文标题:Docker-Compose搭建Redis集群的实现教程
本文地址:https://zz.feitang.co/server/30458.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





