1. 创建Master中redis数据目录和配置目
mkdir -p /data/redis-master/data
mkdir -p /data/redis-master/conf.d
chmod -R 777 /data
2. 创建Master配置文件
mkdir /data/redis-master/conf.d/my.conf
将以下内容复制至配置文件
# 设置监听端口号
port 6379
# 设置认证密码
requirepass 123456
# 设置数据库的数目
databases 20
# 设置工作目录
dir /data/redis
# AOF 持久化
appendonly yes
# 持久保存文件名
appendfilename "appendonly.aof"
3. 创建Master的启动脚本
mkdir /data/redis-master/run.sh
将以下内容复制至启动脚本
docker run \
-d \
-p 6379:6379 \
-v $(pwd)/conf.d/my.conf:/etc/redis.conf:ro \
-v $(pwd)/data:/data/redis:rw \
--restart always \
--name redis \
redis:latest-alpine redis-server /etc/redis.conf
4.拉取redis镜像或手动上传tar包
docker pull redis:latest
5. 启动Master的redis容器
sh /data/redis-master/run.sh
6. 创建Slave的数据目录和配置目录
mkdir -p /data/redis-slave/data
mkdir -p /data/redis-slave/conf.d
7. 创建Slave配置文件
mkdir /data/redis-slave/conf.d/my.conf
将以下内容复制至配置文件
设置监听端口号
port 6379
# 设置认证密码
requirepass 123456
# 设置数据库的数目
databases 20
# 设置工作目录
dir /data/redis
# AOF 持久化
appendonly yes
# 持久保存文件名
appendfilename "appendonly.aof"
# 指定Master的IP和Port
replicaof x.x.x.x 6379
# 指定Master的密码
masterauth 123456
8. 启动Slave的redis容器
sh /data/redis/run.sh
9. 进入Slave的redis容器查看是否成功链接主库
docker exec -it redis /bin/sh
redis-cil #启动redis客户端
auth 123456 #输入redis密码
info replication #查看主机信息
输出信息中查看到以下字样则为链接成功
role:slave # 当前为从节点
master_host:x.x.x.x # 主节点ip
master_port:6379 # 主节点端口
master_link_status:up
10. 测试
在主节点进入redis客户端(方法同上)添加数据
set test1 test2
在从节进入redis客户端查看数据是否同步
keys*
从节点无法插入数据