redis-哨兵是做什么的?

先来看这么一个redis服务器出现的问题。

redis-哨兵是做什么的?_第1张图片

当master(主)出现宕机。需要干的事情:

  • 1.关闭master和所有slave
  • 2.找一个slave作为新master
  • 3.修改其他slave的配置,连接新的主
  • 4.启动新的master与slave
  • 5. 全量复制*N+部分复制*N

这时就产生了问题:

  • 关闭期间的数据服务谁来承接?
  • 由谁找一个主?怎么找法?
  • 修改配置后,原始的主恢复了怎么办?

哨兵作用

哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master并将所有slave连接到新的master。

1.监控:

不断的检查master和slave是否正常运行。 master存活检测、master与slave运行情况检测。

2.通知(提醒):

当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。

3.自动故障转移

断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服 务器地址。

注意

哨兵也是一台redis服务器,只是不提供数据服务, 通常哨兵配置数量为单数。

启用哨兵模式


文件中的配置语句如下创建一个文件[  sentinel+端口.conf  (可见名思意)](创建在redis安装目录下,方便管理)

--哨兵服务器启动端口

port 26379 

 --执行产生的文件存放位置
dir /redis-4.0.0/data 

--对master(主)服务器监控,最后的参数决定于最终参与选举的服务器 数量
sentinel monitor mymaster 127.0.0.1 6379 2

 --判定服务器挂掉的时间周期,默认30秒
sentinel down-after-milliseconds mymaster 30000

--指定同时进行主从的slave数量,数值越大,要求网络资源越高,要求越小,同步时间越长
sentinel parallel-syncs mymaster 1 

--指定出现故障后,故障切换的最大超时时间,超过该值,认定切换失败, 默认3分钟
sentinel failover-timeout mymaster 180000 

启动哨兵

redis-sentinel  sentinel-端口号.conf(自定义配置文件)

 

你可能感兴趣的:(Redis,redis,数据库,缓存)