Redis哨兵模式是一种特定的哨兵模式,用于高可用性的Redis部署。在Redis中,哨兵模式用于监控和管理Redis主从节点,以保证系统的可用性。
在Redis哨兵模式中,有一个或多个哨兵节点(Sentinel Nodes)负责监控Redis的主节点和从节点。哨兵节点通过定期向Redis节点发送PING命令来检测节点的健康状态。如果主节点出现故障或不可用,哨兵节点会自动将一个从节点升级为新的主节点,然后通知其他从节点切换到新的主节点。这样可以保证Redis集群在主节点故障时能够自动进行故障转移,保证系统的高可用性。
除了故障转移外,Redis哨兵还可以执行其他任务,例如监控节点的运行状态、检测节点的配置变化、自动发现新的节点等。哨兵节点之间会进行通信,通过选举算法选出一个哨兵节点作为领导者(Leader),负责协调整个集群的状态和决策。
使用Redis哨兵模式可以提高Redis集群的可用性和可靠性,保证系统在节点故障时能够自动进行故障转移。它还可以方便地进行监控和管理Redis集群,提供了一种简单而有效的高可用解决方案。
前言:如果主从复制没有搭建的可以查看我的另一篇文章
http://t.csdn.cn/J4p0fhttp://t.csdn.cn/J4p0f
我们在一台虚拟机上搭建哨兵模式的redis集群,开启三台redis-server,一台主机两台从机。然后开启三台哨兵去监控主机。当主机宕机时,哨兵们会尝试与主机取得连接,当一定时间内未取得连接时,哨兵会判断该主机已经断线,选举新的主机。值得注意的是,只有大于一半的哨兵认为该主机断线才会选举新的主机。
将/usr/local/redis目录下的sentinel.conf配置文件复制到/opt/redis/conf目录下。
sentinel.conf是Redis Sentinel(哨兵)模式下的配置文件,用于配置Redis哨兵节点的参数和选项。
cp /usr/local/redis/sentinel.conf /opt/redis/conf/sentinel-common.conf
修改sentinel-common.conf哨兵公共配置文件
1.注释哨兵监听进程端口号
2.配置局域网IP
3.设置master和slaves
4.设置sentinel认为服务器已经断线所需的毫秒数
5.关闭保护模式修改为后台启动
添加三个私有哨兵配置文件(添加到/opt/redis/conf目录下)
touch sentinel-26379.conf
touch sentinel-26379.conf
touch sentinel-26379.conf
#引入公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26379
#进程编号记录文件
pidfile "/var/run/sentinel-26379.pid"
#日志记录文件
logfile "/opt/redis/log/sentinel-26379.log"
进程端口号对应到配置文件编号
关闭防火墙
sudo ufw disable
1.开启redis-server服务
sudo redis-server /opt/redis/conf/redis-6379.conf
sudo redis-server /opt/redis/conf/redis-6380.conf
sudo redis-server /opt/redis/conf/redis-6381.conf
可以看到3个redis-server已经开启
2.开启redis-sentinel哨兵
sudo redis-sentinel /opt/redis/conf/sentinel-26379.conf
sudo redis-sentinel /opt/redis/conf/sentinel-26380.conf
sudo redis-sentinel /opt/redis/conf/sentinel-26381.conf
3.开启redis-cli
redis-cli -p 6379 -a 120099
redis-cli -p 6380 -a 120099
redis-cli -p 6381 -a 120099
在6379主机查看从机信息
info replication
可以看到6379做为主机,他有两给从机6380和6381
当我们使用命令杀死6379server进程模拟其宕机时,可以发现很快哨兵监测到6379
服务器断线,并重新选取新的主机。我们可以考到现在6380作为了新的主机。当63
79重新启动时,会加人到6380的从机中去。
至此,我们的Redis集群-哨兵模式就搭建好了。