Docker 搭建 Redis Sentinel(一主两从三哨兵)
本文记录使用 docker-compose 快速搭建一个 Redis Sentinel 测试环境。其中 Redis 集群为 1 个 master 节点,2 个 slave 节点,Sentinel 为 3 个节点。
主机环境
系统 centos 7.5,ip ,docker 20.10.12,docker-compose v2.2.2,redis latest。
1)在 /usr/local/etc/redis 目录下,新建 docker-compose.yml
version: '3'
services:
master:
image: redis
container_name: redis-master
command: redis-server --requirepass qwe!@#123 --masterauth qwe!@#123
ports:
- 6379:6379
slave1:
image: redis
container_name: redis-slave-1
ports:
- 6380:6380
command: redis-server --slaveof redis-master 6379 --requirepass qwe!@#123 --masterauth qwe!@#123
slave2:
image: redis
container_name: redis-slave-2
ports:
- 6381:6381
command: redis-server --slaveof redis-master 6379 --requirepass qwe!@#123 --masterauth qwe!@#123
--requirepass:指定redis登陆的密码。
2)启动 redis 集群
docker-compose up -d
3)查看 redis-master 节点的 docker-ip 和 network name
docker inspect redis-master
4)搭建 sentinel 集群
4.1 在 /usr/local/etc/redis/sentinel 目录下,新建 docker-compose.yml
version: '3'
services:
sentinel1:
image: redis
container_name: redis-sentinel-1
ports:
- 26379:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf
sentinel2:
image: redis
container_name: redis-sentinel-2
ports:
- 26380:26380
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf
sentinel3:
image: redis
container_name: redis-sentinel-3
ports:
- 26381:26381
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
networks:
default:
external:
name: redis_default
4.2 新建 sentinel1.conf
port 26379
dir /tmp
sentinel monitor mymaster 172.18.0.3 6379 2
sentinel auth-pass mymaster qwe!@#123
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
复制到 sentinel2.conf, sentinel3.conf 中,端口分别修改为 26380 和 26381

port 26380
dir /tmp
sentinel monitor mymaster 172.18.0.3 6379 2
sentinel auth-pass mymaster qwe!@#123
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

port 26381
dir /tmp
sentinel monitor mymaster 172.18.0.3 6379 2
sentinel auth-pass mymaster qwe!@#123
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
4.3 在该目录启动 sentinel 集群
docker-compose up -d
sentinel 启动之后,查看日志:
docker logs -f redis-sentinel-1
如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律