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
posted @ 2023-12-08 17:27  klvchen  阅读(153)  评论(0)    收藏  举报