要搭建 Redis 哨兵,需要使用 Docker Compose 工具来编写配置文件。下面是一个示例的 docker-compose.yml 文件:
version: '3'
services:
redis-master:
image: redis
container_name: redis-master
ports:
- "6379:6379"
command: redis-server --requirepass mypassword
redis-slave1:
image: redis
container_name: redis-slave1
command: ["redis-server", "--slaveof", "redis-master", "6379"]
redis-slave2:
image: redis
container_name: redis-slave2
command: ["redis-server", "--slaveof", "redis-master", "6379"]
sentinel1:
image: redis
container_name: sentinel1
depends_on:
- redis-master
- redis-slave1
- redis-slave2
command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
sentinel2:
image: redis
container_name:sentinel2
depends_on:
-sentinel1
command:["redis-sentinel","/usr/local/etc/redis/sentinel.conf"]
sentinel3:
image:redis
container_name:sentinel3
depends_on:
-sentinel1
command:["redis-sentinel","/usr/local/etc/redis/sentinel.conf"]
在上述的配置文件中,我们定义了三个 Redis 节点和三个 Sentinel 节点。其中,Redis Master 节点被命名为 redis-master,并且设置了密码为 mypassword;两个 Redis Slave 节点被命名为 redis-slave1 和 redis-slave2,并且通过 --slaveof 参数指定它们的主节点为 Redis Master 节点。
Sentinel 节点的配置也非常简单。我们定义了三个 Sentinel 节点,并使用 depends_on 属性来确保它们在 Redis Master 和 Slave 节点之后启动。每个 Sentinel 节点都运行在默认端口 26379 上,并使用 /usr/local/etc/redis/sentinel.conf 配置文件启动。
要运行上述配置文件,只需要执行以下命令:
docker-compose up -d
这将启动所有 Redis 和 Sentinel 节点,并将它们连接成一个完整的 Redis 哨兵集群。您可以通过以下命令检查集群状态:
docker exec -it sentinel1 redis-cli -p 26379 info sentinel




