docker-compose搭建redis环境:哨兵模式(一主两重两哨兵)
以下是使用docker-compose
搭建一主两重两哨兵的Redis哨兵模式的示例代码:
首先,创建一个名为 docker-compose.yml
的文件,内容如下:
version: '3'
services:
redis-master:
image: redis:6.0.9
ports:
- "6379:6379"
command: redis-server --appendonly yes --port 6379
redis-slave-1:
image: redis:6.0.9
ports:
- "6380:6379"
command: redis-server --slaveof redis-master 6379 --appendonly yes --port 6380
redis-slave-2:
image: redis:6.0.9
ports:
- "6381:6379"
command: redis-server --slaveof redis-master 6379 --appendonly yes --port 6381
redis-sentinel-1:
image: redis:6.0.9
ports:
- "26379:26379"
command: redis-sentinel /etc/redis/sentinel.conf
volumes:
- ./sentinel.conf:/etc/redis/sentinel.conf
redis-sentinel-2:
image: redis:6.0.9
ports:
- "26380:26379"
command: redis-sentinel /etc/redis/sentinel.conf
volumes:
- ./sentinel.conf:/etc/redis/sentinel.conf
然后,在同一目录下创建哨兵配置文件 sentinel.conf
,内容如下:
port 26379
dir /tmp
sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
请确保修改 sentinel.conf
文件的权限,使其可以被 Docker 容器读取。
最后,通过以下命令启动服务:
docker-compose up -d
这将会启动一个Redis主实例、两个Redis从实例(重复配置)以及两个Redis哨兵实例。哨兵实例共享一个配置文件,通过卷(volume)挂载到容器内部。
注意:
- 确保你的
docker-compose.yml
文件和sentinel.conf
文件的路径正确,并且sentinel.conf
文件权限允许。 - 版本号(如
6.0.9
)需要根据你的实际Redis镜像版本进行替换。
评论已关闭