1.配置文件
- 从redis安装目录 获取 sentinel.conf 配置文件
cp /usr/local/redis/sentinel.conf /etc/sentinel/5000.conf
cp /usr/local/redis/sentinel.conf /etc/sentinel/5001.conf
cp /usr/local/redis/sentinel.conf /etc/sentinel/5002.conf
- 修改配置 5000.conf 其他的配置 类似
#端口
port 5000
bind 127.0.0.1
dir /var/sentinal/5000
# mymaster ip 端口 quorum 数量
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
# 添加后台启动
daemonize yes
#指定日志位置
logfile /var/log/sentinal/5000/sentinal.log
创建日志目录
mkdir -p /var/log/sentinal/5000
类似这种配置,来指定对一个master的监控,给监控的master指定的一个名称,因为后面分布式集群架构里会讲解,可以配置多个master做数据拆分
down-after-milliseconds,超过多少毫秒跟一个redis实例断了连接,哨兵就可能认为这个redis实例挂了
parallel-syncs,新的master别切换之后,同时有多少个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多
quorum的解释如下:
- (1)至少多少个哨兵要一致同意,master进程挂掉了,或者slave进程挂掉了,或者要启动一个故障转移操作
- (2)quorum是用来识别故障的,真正执行故障转移的时候,还是要在哨兵集群执行选举,选举一个哨兵进程出来执行故障转移操作
- (3)假设有5个哨兵,quorum设置了2,那么如果5个哨兵中的2个都认为master挂掉了; 2个哨兵中的一个就会做一个选举,选举一个哨兵出来,执行故障转移; 如果5个哨兵中有3个哨兵都是运行的,那么故障转移就会被允许执行
3、启动哨兵进程
redis-sentinel /etc/sentinal/5000.conf
4、检查哨兵状态
redis-cli -h 192.168.31.187 -p 5000
sentinel master mymaster
SENTINEL slaves mymaster
SENTINEL sentinels mymaster
SENTINEL get-master-addr-by-name mymaster