Docker-Compose部署Redis(v7.2)主从模式
环境
- docker desktop for windows 4.23.0
- redis 7.2
一、前提准备
1. redis配置文件
因为Redis 7.2 docker镜像里面没有配置文件,所以需要去redis官网下载一个复制里面的redis.conf
博主这里用的是7.2.3版本的redis.conf,这个文件就在解压后第一层文件夹里。
2. 下载redis镜像
1 | docker pull redis:7.2 |
3. 文件夹结构
如下建立cluster文件夹,并复制出三份conf文件到如图位置。
二、docker-compose
docker-compose文件具体内容如下。
1 | version: '3.8' |
需要注意以下几点
- 这里自定义了
bridge子网并限定了范围,如果该范围已经被使用,请更换。 - 这里没有对
data进行-v挂载,如果要挂载,请注意宿主机对应文件夹权限问题。
三、主从配置
1.主节点配置文件
主节点对应的配置文件是master/redis.conf,需要做以下修改
bind
将bind 127.0.0.1 -::1修改为bind 0.0.0.0,监听来自任意网络接口的连接。protected-mode
将protected-mode设置为no,关闭保护模式,接收远程连接。masterauth
将masterauth设置为1009,这是从节点连接到主节点的认证密码,你可以指定为其他的。requirepass
将requirepass设置为1009,这是客户端连接到本节点的认证密码,你可以指定为其他的。
2.从节点配置文件
把上面主节点的配置文件复制粘贴,然后继续做以下更改,就可以作为从节点配置文件了
- replicaof
旧版本添加一行replicaof redis-master 6379,表示本节点为从节点,并且主节点ip为redis-master,端口为6379。这里你也可以把ip填成172.30.1.2,因为在docker-compose中我们为各节点分配了固定的ip,以及端口是6379而不是映射的700x,这些都是docker的知识,这里不再赘述。
redis在5.0引入了replica的概念来替换slave,所以后续的新版本推荐使用replicaof,即便slaveof目前仍然支持。
四、运行
配置好三个节点的配置文件后,用以下命令运行整个服务
1 | docker-compose -p redis-cluster up -d |
查看主节点日志,可以看到主节点向172.30.1.3和172.30.1.4两个从节点同步数据,并且连接正常,以及一系列success。
1 | 2024-01-05 15:12:59 1:M 05 Jan 2024 07:12:59.008 * Opening AOF incr file appendonly.aof.1.incr.aof on server start |
接着看看从节点日志,可以看到Connecting to MASTER redis-master:6379,向主节点连接并申请同步数据,以及一系列success。
1 | 2024-01-05 15:13:01 1:S 05 Jan 2024 07:13:01.166 * Connecting to MASTER redis-master:6379 |
五、测试
用你喜欢的docker容器连接工具或者redis连接工具来连接主节点redis服务,只要能进入redis-cli就行。这里以docker容器连接为例。
- 主节点设置一个字段并查看从节点信息
1 | root@ac1ecfc4e3a5:/data# redis-cli |
- 从节点获取
1 | root@a3016db388e3:/data# redis-cli |
测试成功。



![Docker单点部署[8.11.3] Elasticsearch + Kibana + ik分词器 + pinyin分词器](/Hexo/2023/12/24/2023-H2/2023-12-24-20-01-28/1718889656745.png)



https://xiamu-ssr.github.io/FontFamilyCode/






