一、概述
Redis高可用集群是一种分布式系统,它由多个Redis节点组成,可以提供高可用性和容错性。在Redis高可用集群中,每个节点都可以处理客户端请求,并且数据会在多个节点之间进行复制和同步,以确保数据的可靠性和一致性。当一个节点出现故障时,集群会自动将请求路由到其他可用节点,从而保证服务的连续性和可用性。Redis高可用集群通常使用主从复制和哨兵机制来实现数据的复制和故障检测,同时还可以使用分片技术来提高性能和扩展性。
二、工作原理
1. Sentinel集群中的每个Sentinel节点都会定期向Redis主从节点发送PING命令,以检测节点是否正常运行。
2. 如果一个Sentinel节点在一定时间内没有收到主节点的回复,它会将主节点标记为下线状态,并向其他Sentinel节点广播这个信息。
3. 当大多数Sentinel节点都认为主节点已经下线时,它们会选举一个Sentinel节点作为领导者,负责执行故障转移操作。
4. 领导者Sentinel节点会向所有从节点发送SLAVEOF命令,将它们切换为新的主节点的从节点。
5. 领导者Sentinel节点还会向新的主节点发送CONFIG SET命令,将它的IP地址和端口号更新到从节点的配置中。
6. 当从节点收到新的主节点的IP地址和端口号后,它们会重新连接到新的主节点,并开始同步数据。
三、准备工作
1、三台虚拟机
2、关闭防火墙
3、每台虚拟机都安装redis
4、三台虚拟机互通
四、部署
1、部署主服务器
vim /etc/redis.conf 编辑redis主配置文件
bind 0.0.0.0 表示任何人都可用
port 6379 配置端口
daemonize yes 以守护进程模式启动
配置哨兵
vim /etc/redis-sentinel.conf 编辑哨兵配置文件
port 26379 哨兵的端口号
daemonize yes 以守护进程启动
sentinel monitor mymaster 主服务器IP 6379 2 监控的IP端口号 名称sentinel通过投票后认为mater宕机的数量此处至少为两个
protected --mode no 关闭保护模式
2、配置从服务器(两个从服务器的配置一样)
vim /etc/redis.conf 打开从服务器配置文件
bind 0.0.0.0 表示任何人都可用
port 6379 配置端口
daemonize yes 以守护进程模式启动
slaveof 192.168.1.20 6379 主服务器的IP
配置哨兵
vim /etc/redis-sentinel.conf 打开哨兵配置文件
port 26379 端口号
daemonize yes 以守护进程启动
sentinel monitor mymaster 主服务器IP 6379 2 监控的IP端口号 名称sentinel通过投票后认为mater宕机的数量此处至少为两个
protected --mode no 关闭保护模式
五、测试
现在可以看到我的主服务器下挂了两个从服务器
现在把主服务器停掉
再去查看两个从服务器
IP为211的没有变化
但是可以发现IP为210的变成了主服务器
以上测试结果为实验成功
这就是redis高可用集群的基本配置
如有错误欢迎各位大佬批评指正,我们共同进步