redis哨兵集群

redis哨兵集群搭建

架构示意图

redis哨兵集群

docker搭建redis

主机点:172.18.0.2 docker名称:redis6380
从节点1:172.18.0.3 docker名称:redis6381
从节点2:172.18.0.4 docker名称:redis6382

1
2
3
4
5
#版本:redis:7.2.0
#启动 docker实例
IP=$1
docker run -d --name redis${IP:-6379} -v /home/redis${IP:-6379}:/data -p ${IP:-6379}:6379 --sysctl net.core.somaxconn=512 -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" redis:7.2.0

docker 搭建sentinel

1
2
3
4
docker pull bitnami/redis-sentinel:7.2.0
IP=$1
docker run -d --name sentinel${IP} -e REDIS_MASTER_PASSWORD=123456 --network redis -e REDIS_MASTER_HOST=redis6380 -p 2${IP}:26379 bitnami/redis-sentinel:7.2.0

验证sentinel

1692687849932

  • 模拟节点故障
1
docker stop redis6380
  • 验证主节点切换
    1692688338434
    172.18.0.4:6379 切换为主节点
  • 启动挂掉的节点
    1692688553598
1
2
docker start redis6380
redis-cli -h 172.18.0.2 -p 6379 -a 123456 info replication

172.18.0.2 切换为从节点