前言
Redis哨兵模式是一种用于实现Redis高可用性的机制。在哨兵模式下,有一个或多个哨兵进程监控Redis主节点和从节点的状态,并在主节点出现故障时自动将一个从节点升级为新的主节点,以确保系统的持续可用性。
哨兵进程通过发送心跳检测来监控Redis节点的状态。如果主节点出现故障,哨兵会选举一个新的主节点,并将其他从节点重新配置为新的主节点的从节点。这个过程是自动进行的,无需人工干预。
哨兵模式还可以处理多个从节点的故障。当多个从节点同时失效时,哨兵会重新配置剩余的从节点,并将它们连接到新的主节点上。这样即使有多个节点发生故障,系统依然可以保持正常运行。
除了监控和自动故障恢复外,哨兵模式还提供了一些其他功能,如配置管理、节点间通信等。它可以通过发布订阅机制实时通知客户端节点的状态变化,方便客户端进行相应的调整。
总的来说,Redis哨兵模式是一种实现Redis高可用性的解决方案,它通过监控和自动故障恢复来确保系统的持续可用性,同时提供了一些其他功能来方便客户端的管理和调整。
一、哨兵模式概念
依托于主从模式
是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 Master 并将所有 Slave 连接到新的 Master。所以整个运行哨兵的集群的数量不得少于3个节点。
二、作用
监控:哨兵会不断地检查主节点和从节点是否运作正常。
自动故障转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。
通知(提醒):哨兵可以将故障转移的结果发送给客户端。
三、缺点
写操作无法负载均衡
存储能力受到单机的限制
哨兵无法对从节点进行自动故障转移,在读写分离场景下,从节点故障会导致读服务不可用,需要对从节点做额外的监控、切换操作。
四、结构
哨兵节点:哨兵系统由一个或多个哨兵节点组成,哨兵节点是特殊的redis节点,不存储数据。
数据节点:主节点和从节点都是数据节点。
五、搭建
1、yum 安装的 哨兵模式配置文件位置位于 /etc/redis-sentinel.conf 一般一个REDIS都会伴随一个哨兵,但是他默认是关闭的,可以根据下图内容操作开启哨兵模式
关闭保护模式
protected-mode no
Redis哨兵默认的监听端口
port 26379
从哨兵的配置文件要指向主
2.我们先进行主从配置:1主3从,复制并修改他们的配置文件
[root@localhost etc]# cp redis.conf /opt/redis_6380.conf
[root@localhost etc]# cp redis.conf /opt/redis_6381.conf
[root@localhost etc]# vim /opt/redis_6380.conf
[root@localhost etc]# vim /opt/redis_6381.conf
配置主从,在从服务的配置文件添加主的ip 192.168.115.6 和端口 6379
启动redis
查看进程
[root@localhost etc]# netstat -anput |grep redis
登录redis
3.同理配置哨兵模式文件并拷贝
关闭保护模式protected-mode no
Redis哨兵默认的监听端口
port 26379
从哨兵的配置文件要指向主
以此为模版,以端口区分命名cp,并修改这些文件对应的端口
修改完成后启动并查看
验证:master结束进程
查看哨兵是否选取出新的master:vim /var/log/redis/sentinel.log获取信息
查看日志文件,得知6381的REDIS成为了master
登录6381端口验证