一、redis哨兵模式
------这里以一主双从来讲解哨兵模式------
Redis一主双从哨兵模式是一种高可用性的Redis部署方案,主要包括以下几个步骤:
1.主节点和从节点之间通过异步复制实现数据同步。
2.哨兵负责监控Redis主节点和从节点的状态。
3.当主节点宕机时,哨兵会自动将其中一个从节点升级为新的主节点,并将其他从节点切换到新的主节点上。
4.哨兵通过互相通信来实现监控和自动切换。
5.哨兵还可以通过自动故障转移来实现自动切换。
redis一主双从哨兵模式工作原理图:
二、redis一主双从哨兵模式部署实现
2.1 环境准备
192.168.80.128 redis-master
192.168.80.131 redis-slave1
192.168.80.132 redis-slave2
这三台机器都需要部署了redis环境,具体如何部署并启动,可以参考本人上篇文章:https://blog.csdn.net/promising521/article/details/130668979
部署成功并启动
2.2 redis主从配置
首先在redis-master中配置
#vim /usr/local/redis/redis.conf
在这里找到 bind 127.0.0.1 改为bind 0.0.0.0
#protected-mode yes
把yes改为no,关闭保护。
其次在redis-master中配置
在slave1和slave2上和上面master配置相同
另外还要添加 slaveof 192.168.80.128
这是声明一下s1和s2隶属于m
三台redis由于修改了配置文件,需要重启后才能生效
#systemct restart redis
主从环境测试
上面一系列操作配置好了主从,这里我们测试一下
首先,在master服务器上
#/usr/local/redis/src/redis-cli
/usr/local/redis/redis-cli是Redis的命令行工具,用于与Redis服务器进行交互。通过运行该命令,可以连接到Redis服务器,并执行各种操作,如设置和获取键值对、执行事务、发布和订阅消息等。
这里设置了字段名和值,我们去从服务器上看看能不能get到name的值
由上图可知主从集群搭建完毕,接下来我们查看一下集群信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/0b6aef1f40114
87d82a99055de5e7dfc.png)
这里我们可以看到master slave0 slave1 的ip
到这里我们就搭建好了redis主从集群了,为了实现高可用,我们接下来配置一下集群的哨兵模式
2.3 redis主从集群开启哨兵模式
在本文的开始就已经介绍了哨兵模式。这里就直接开始步入正题了
在master、slave1和slave2服务器上配置以下内容
#vim /usr/local/redis/sentinel.conf
sentinel monitor mymaster 192.168.80.128 6379 2
//申明主服务器、端口及其票权力,票权=从服务器数量/2+1
sentinel down-after-milliseconds mymaster 3000
//这里原本是30s,即30000,为了实验方便,我们改为3000.即3s
protected-mode no
//关闭保护模式
sentinel failover-timeout mymaster 10000
//这里为了方便实验,这里改为10s,原来是3m
三台机器开启哨兵模式。命令如下
#cd /usr/local/redis/
#./src/redis-sentinel sentinel.conf
这里标明了主从附属关系
到这里,我们就部署好了redis的哨兵模式了。
接下来把master宕机,观察哨兵机制会不会重新选出新的master
在master上停止redis服务
#systemctl stop redis
观察从服务器器上哨兵状态
图中表明:主服务由128换成了131
实验成功!!!