第一部分理论
1、redis的工作原理及作用
哨兵是用于监控redis集群HA中MASTER状态的工具,在2.4以上版本已集成
1)master状态的监控
2)如果发现master异常,则进行master-slave切换,把其中一台slave作为master上线,原master下线作为slave
3)master-slave切换后,相关配置发生变化,master_redis.conf ,slave_redis.conf , sentinel_redis.conf 三个配置文件,同时master_redis.conf文件增加新一行slaveof
sentinel.conf的监控目标也自动调换
2、redis的工作模式
1)单节点模式
2)主从模式
3)sentinel哨兵模式
3、各工作模式的原理及优缺点
1)单节点模式,除非是资源有限,或该服务不重要,否则没有可取之处
2)主从模式,一主二从比较流行,但缺乏灵活性,出现问题,需要人为被动切换,
3)哨兵模式,通过sentinel工具,按照设定的有效时间,监控master主机状态,对主动判断主机是否异常,有效进行master-slave切换,达到平滑切换
4、sentinel的工作方式
1)每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令
2)如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。
3)如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。
4)当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线
5)在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令
6)当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次
7)若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除。
若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。
第二部分实操
1、sentinel 哨兵简易配置
port 26379
dir "/tmp"
daemonize yes
protected-mode no
logfile "/data/redis/sentinel.log"
sentinel monitor mymaster 106.12.203.50 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster redis
2、redis-cluster 群集的部署及常用命令
1)基础环境安装
2)启动redis-cluster命令
新增节点
删除节点
******