一、前言
本文将基于以下环境部署redis主从复制模式
- CentOS Linux release 7.6.1810 (Core)
- Docker version 20.10.5, build 55c4c88
- docker-compose version 1.28.6, build 5db8d86f
二、docker-compose
部署redis主从复制
模式
可参考 https://gitee.com/zhengqingya/docker-compose
# 准备
git clone https://gitee.com/zhengqingya/docker-compose.git
cd docker-compose/Liunx
# 当前目录下所有文件赋予权限(读、写、执行)
chmod -R 777 ./redis-master-slave
# 运行 -- 主从复制模式
docker-compose -f docker-compose-redis-master-slave.yml -p redis up -d
下面贴出相关配置文件
docker-compose-redis-master-slave.yml
version: '3'
# 网桥redis -> 方便相互通讯
networks:
redis:
services:
# 主
master:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8 # 镜像'redis:6.0.8'
container_name: redis-master # 容器名为'redis-master'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./redis-master-slave/master/data:/data"
- "./redis-master-slave/master/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
ports: # 映射端口
- "6380:6379"
networks:
- redis
# 从
slave:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:6.0.8 # 镜像'redis:6.0.8'
container_name: redis-slave # 容器名为'redis-slave'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no --slaveof www.zhengqingya.com 6380 --masterauth 123456 # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置,连接并认证master节点
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./redis-master-slave/slave/data:/data"
- "./redis-master-slave/slave/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
ports: # 映射端口
- "6381:6379"
networks:
- redis
redis.conf
内容可参考 http://download.redis.io/redis-stable/redis.conf
三、测试主写从读
master中写入数据,slave中查看
查看实例状态info replication
今日分享语句:
把艰辛的劳作看作是生命的必然,即使没有收获的希望也心平气和的继续。