一、哨兵模式的实现场景
在主从模式的Redis系统中,从数据库在整个系统中起到了数据 冗余备份和 读写分离的作用,但是当数据库遇到异常中断服务后,我们只能通过手动的方式选择一个从数据库来升格为主数据库,显然这种方式很麻烦需要人工介入,这时通过哨兵模式可以实现自动化的系统监控和故障恢复。
二、哨兵模式
2.1、哨兵模式原理
哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。所以整个运行哨兵的集群的数量不得少于3个节点。
2.2、哨兵模式的作用
① 监控
不断的检查master和slave是否正常运行。
master存活检测、master与slave运行情况检测
② 通知(提醒)
当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。
③ 自动故障转移
断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
PS:哨兵也是一台redis服务器,只是不提供数据服务
哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式,所有节点上都需要部署哨兵模式,哨兵模式会监控所有的redis工作节点是否正常,当master出现问题的时候,因为其他节点与主节点失去联系,因此会投票,投票过半就认为这个master的确出现问题,然后会通知哨兵间,然后从slaves中选取一个作为新的master
2.3、主从具体配置
1、配置主服务器
1、编译安装redis数据库
[root@Master ~]# tar zxf redis-5.0.7.tar.gz
[root@Master ~]# cd redis-5.0.7/
[root@Master redis-5.0.7]# make
[root@Master redis-5.0.7]# make PREFIX=/usr/local/redis install
[root@Master redis-5.0.7]# ln -s /usr/local/redis/bin/* /usr/local/bin
[root@Master redis-5.0.7]# cd utils/
[root@Master utils]# ./install_server.sh
Welcome to the redis service