Redis集群:哨兵模式

简介:

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.注释哨兵监听进程端口号

bc8d9cc4da294b1188d3403dc4abe1f3.png

 2.配置局域网IP

848e9f9ad80348168455d1f629954a17.png

3.设置master和slaves

10d0d930b8254c0b9b2d6ad312c5ae69.png 

4.设置sentinel认为服务器已经断线所需的毫秒数

95b227999c9b478a872aae9031b8278a.png 

5.关闭保护模式修改为后台启动

66b39555e4974d6c8cf8236c2c49b10d.png 

 步骤三:

添加三个私有哨兵配置文件(添加到/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已经开启

4f0643bcf8784c2ba381b1e65cf43306.png

 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

a93aa83e5c19458593f0f243e60b77ff.png

 当我们使用命令杀死6379server进程模拟其宕机时,可以发现很快哨兵监测到6379

服务器断线,并重新选取新的主机。我们可以考到现在6380作为了新的主机。当63

79重新启动时,会加人到6380的从机中去。

7ef77e18f09a4dcf904e12771240fc6e.png

 

 至此,我们的Redis集群-哨兵模式就搭建好了。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis集群模式和哨兵模式有以下几个区别: 1. 数据存储方式:在哨兵模式下,多个Redis服务器存储的是相同的数据,这样会比较浪费存储空间。而在集群模式下,Redis的数据是被分布式存储的,可以更好地利用存储资源。 2. 主从同步架构:哨兵模式主要是为Redis主从同步架构服务的。当主节点宕机时,哨兵会进行监控、通知和选举,以确保系统的高可用性。而集群模式则是将数据分布到多个节点上,实现了数据的分布式存储和负载均衡。 3. 故障转移机制:在哨兵模式中,故障转移时需要大部分的哨兵节点都同意才能进行,涉及到了分布式选举的问题。即使部分哨兵节点挂掉了,哨兵集群仍然可以正常工作,保证了高可用性。而在集群模式中,节点之间通过Gossip协议进行通信,使用Raft一致性算法来实现故障转移,保证了数据的一致性和高可用性。 总结来说,哨兵模式适用于主从同步架构下的高可用性需求,而集群模式适用于需要分布式存储和负载均衡的场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Redis 哨兵模式集群模式](https://blog.csdn.net/weixin_43889841/article/details/117483197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值