概念
- 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
- 如果Redis主机故障了,根据投票数,自动将从库变成主库
- 哨兵模式是一种特殊的的模式,首先Redis提供哨兵命令,哨兵是一个独立的进程,作为进程,他会独立运行,其原理是哨兵通过发送命令,等待Redis,服务器响应,从而监控运行的多个Redis实例。
哨兵作用:
1.通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
2.当哨兵检测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他从服务器,修改配置文件,让它们切换主机。
一般情况下,单个哨兵,可能会出现问题,所以一般是多哨兵进行监控。各个哨兵之间也互相监控,形成多哨兵模式。
用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。
测试:
环境:1主(79端口)2从(80,81),只启动一个哨兵,因为内存不够用了。。
创建一个哨兵文件
监听6379(1是1个哨兵认为79这个Redis宕机,他就是宕机,需要重新选举)
启动哨兵
在6379服务器,添加K1 V1,然后停止redis
发现哨兵进行了选举
然后查看从机(80,81)的信息
80依旧是从机
81变成了主机
重新启动6379,发现79也变成了81的从机
优点: 1、哨兵集群,基于主从复制,所有从配置的优点,它全有 2、主从可以切换,故障可以转移,系统的可用性就会更好
3、哨兵模式就是主从模式的升级,手动到自动,更加健壮缺点: 1、Redis不好在线扩容,集群容量一旦达到上限,在线扩容很麻烦 2、实现哨兵模式配置很麻烦,很多选择