docker-compose 搭建 redis 主从和手动切换
背景
针对客户没有多余的机器尽量保证 redis 的数据完整,不要求高可用
| IP | 角色 |
|---|---|
| 172.16.16.77 | redis_master |
| 172.16.16.78 | redis_slave |
部署 redis_master
mkdir -p /data/docker-compose/redis-master
cd /data/docker-compose/redis-master
cat >> docker-compose.yml << EOF
version: '3.8'
services:
redis_master:
image: redis:6.2.14-alpine
container_name: redis_master
restart: always
volumes:
- ./data:/data
environment:
- "TZ=Asia/Shanghai"
ports:
- "6379:6379"
command:
redis-server --requirepass huidiancloud --save 60 1
EOF
docker-compose up -d
部署 redis_slave
mkdir -p /data/docker-compose/redis-slave
cd /data/docker-compose/redis-slave
cat >> docker-compose.yml << EOF
version: '3.8'
services:
redis_slave:
image: redis:6.2.14-alpine
container_name: redis_slave
restart: always
volumes:
- ./data:/data
environment:
- "TZ=Asia/Shanghai"
ports:
- "6379:6379"
command:
redis-server --slaveof 172.16.16.77 6379 --masterauth huidiancloud --requirepass huidiancloud --save 60 1
EOF
docker-compose up -d
测试
登录 redis_master
set klvchen 88
登录 redis_slave
# 执行下面命令
info
# 检查查看目前角色
# Replication
role:slave
# 查看从节点有没有数据
get klvchen
slave 手动切换
登录 redis_slave
# 手动让 slave 变成 master
slaveof NO ONE
# 查看角色
info
# 手动切回 slave, 注意2点,1: 不需要输入密码;2: master 的数据会覆盖 slave 的
SLAVEOF 172.16.16.77 6379
# 查看角色
info

浙公网安备 33010602011771号