使用 Docker Compose 部署 Redis 单节点 和 主从架构
单节点 Redis 部署
version: '3.9'
services:redis:image: redis:6.2.14ulimits:nofile: 65535container_name: redisrestart: alwaysports:- 6379:6379volumes:- /home/earth/redis/data:/data:rwenvironment:- TZ=Asia/Shanghaicommand: redis-server --masterauth ShieldPlatform --requirepass ShieldPlatform --port 6379
Redis 主从架构部署
主节点
version: '3.9'
services:redis:image: redis:6.2.20ulimits:nofile: 65535container_name: redis-masterrestart: alwaysports:- 6379:6379volumes:- /data/redis/data:/data:rwenvironment:- TZ=Asia/Shanghaicommand: redis-server --masterauth ShieldPlatform --requirepass ShieldPlatform --port 6379
从节点
# @Author: Johnnyversion: '3.9'
services:redis:image: redis:6.2.20ulimits:nofile: 65535container_name: redis-slaverestart: alwaysports:- 6379:6379volumes:- /data/redis/data:/data:rwenvironment:- TZ=Asia/Shanghaicommand: redis-server --slaveof 10.10.10.10 6379 --masterauth ShieldPlatform --requirepass ShieldPlatform --port 6379
–slaveof 10.10.10.10 6379:连接 IP 为 10.10.10.10 的主节点
需要将 10.10.10.10 替换为 主节点所在服务器的真实 IP
验证主从同步
在从节点执行:
docker exec -it redis-slave redis-cli -p 6379 -a ShieldPlatform INFO replication
输出应包含:
role:slave
master_host:10.10.10.10
master_port:6379
master_link_status:up
在主节点写入数据,从节点应自动同步:
# 主节点
redis-cli -h 主节点IP -p 6379 -a ShieldPlatform SET test "hello"# 从节点
redis-cli -h 从节点IP -p 6379 -a ShieldPlatform GET test
# 返回 "hello"
其它
命令参考
https://blog.csdn.net/z_johnny/article/details/153683458
