yls
2019-9-20
新建redis文件夹,在该文件夹下创建docker-compose.yml文件,输入如下内容
version: '3.1'
services:
master:
image: redis
container_name: redis-master
ports:
- 6379:6379
slave1:
image: redis
container_name: redis-slave-1
ports:
- 6380:6379
command: redis-server --slaveof redis-master 6379 #绑定主redis:redis是主redis的计算机名,6379为主redis的接口
slave2:
image: redis
container_name: redis-slave-2
ports:
- 6381:6379
command: redis-server --slaveof redis-master 6379 #绑定主redis:red is是主redis的计算机名,6379为主redis的接口
运行redis容器:在docker-compose.yml当前所在文件夹下,运行命令
docker-compose up -d
新建sentinel文件夹,在该文件夹下创建docker-compose.yml文件,输入如下内容
version: '3.1'
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:26379
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:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
创建三个数据卷配置文件(sentinel1.conf,sentinel2.conf,sentinel3.cong),分别为sentinel容器提供配置,为了方便,我这里将三个配置文件内容设置成一样
port 26379
dir "/tmp"
# 自定义集群名,其中192.168.145.128为redis-master的ip,6379为redis-master的端口,
# 2为最小投票数(因为有3台sentinel,所以可以设置为2)
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.145.128 6379 2
sentinel down-after-milliseconds mymaster 300000
sentinel config-epoch mymaster 0
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
运行sentinel集群:与docker-compose同级目录下,运行如下命令
docker-compose up -d
以交互的方式进入任意一个sentinel容器
docker exec -it redis-sentinel-1 bash
在进入的sentinel容器中,通过命令的方式进入redis客户端
redis-cli -p 26379
sentinel master mymaster
能看到如下结果,说明部署成功
1) "name"
2) "mymaster"
3) "ip"
4) "192.168.145.128"
5) "port"
6) "6379"
7) "runid"
8) "324f148cf69ef6d2a86cfa4bdfc4f6937974b7b8"
9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "561"
19) "last-ping-reply"
20) "561"
21) "down-after-milliseconds"
22) "300000"
23) "info-refresh"
24) "7109"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "4454165"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"
原文:https://www.cnblogs.com/yloved/p/11559902.html