您的位置:首页 > 数据库 > Redis

Redis哨兵(sentinel)

2016-04-05 02:04 585 查看

介绍

Redis的sentinel主要是用来管理多个Redis服务器,sentinel负责(1)监控主服务器和从服务器的运行状态(2)主服务器运行故障时自动切换其中一台从服务器为主服务器



Sentinel常用配置选项


sentinel monitor master-name host port quorum


例子:sentinel monitor mymaster 127.0.0.1 6379 2

例子表示的是声明该Sentinel监控的master的名字叫做mymaster,地址为127.0.0.1:6379,最后一个2表示的意思是当集群中有2个Sentinel认为master宕机了或者1个Sentinel有2次认为master宕机了,就会真正认为该master彻底宕机了。


sentinel auth-pass master-name password


如果监控的Redis服务器设置了密码,这需要配置这个选项


sentinel down-after-milliseconds master-name milliseconds


Sentinel会向master发送心跳PING来确认master是否运行,如果master在一定时间(down-after-milliseconds,单位毫秒)内不回应PONG 或者是回复了一个错误消息,那么Sentinel会认为master已经宕机了。

实验介绍

搭建Redis集群,如下所示



根据上图配置并启动三台Redis服务器和一台Sentinel

启动Sentinel需要用到sentinel.conf,sentinel.conf可以在redis的源码包中找到,Sentinel的启动方式为
redis-sentinel /path/to/sentinel.conf
redis-server /path/to/sentinel.conf --sentinel


sentinel.conf的部分配置为

sentinel monitor mymaster 127.0.0.1 6379 1


sentinel down-after-milliseconds mymaster 5000


成功启动sentinel



接下来,shutdown master(localhost:6379)即在命令行中敲入
./bin/redis-cli -p 6379 shutdown


等待一小段时间后,我们观察Sentinel,可以看到Sentinel进行了故障自动转移



接下来连接到127.0.0.1:6381,确实可以看到被设置为了master,并且127.0.0.1:6380是其slave



master宕机后由哪台slave成为新的master是由各个slave的slave-priority(在redis.conf中配置)决定的,slave-priority越小则优先被设置为新master,如果相同则随机设置一台slave为master
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: