首页 > 数据库 >Redis 哨兵模式(Sentinel)配置

Redis 哨兵模式(Sentinel)配置

时间:2023-11-03 15:46:10浏览次数:34  
标签:mymaster 故障 Redis 哨兵 sentinel master Sentinel

哨兵是Redis的一种运行模式,它专注于对Redis实例(主节点、从节点)运行状态的监控,并能够在主节点发生故障时通过一系列的机制实现选主及主从切换,实现故障转移,确保整个Redis系统的可用性。

集群演示

本次测试为“1主2从” 的模式,即一个master 两个从节点 slave 。如下图

条件限制,只采用了一台服务器 开不同的端口

 在redis.windows.conf中配置不同的端口

 

 我这里设置了三个 分别是

10.31.60.14:6379  (mymaster)

10.31.60.14:6380  (slave1)

10.31.60.14:6381  (slave2)

配好之后设置一下主从关系

slaveof 10.31.60.14 6379

 配置 Sentinel

在每个redis里面新建一个 sentinel.conf 的配置文件

# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,26380,和 26381。

#当前Sentinel服务运行的端口
port 26379  
# 哨兵监听的主服务器 
sentinel monitor mymaster 127.0.0.1 6379 2  #这里写你的ip
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover  
sentinel failover-timeout mymaster 10000  
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步,越多越快
sentinel parallel-syncs mymaster 1

然后在每个redis里面加一个bat文件,启动哨兵用的

redis-server.exe sentinel.conf --sentinel

然后就可以启动咯。我这里已经将redis加到服务了,就直接启动哨兵。三个都启动

 上面发现mymaster的端口为6379

查看6379的主从信息 

info replication

  

 发现有两个slave 端口分别为6380和6381

然后把 6379的 redis shutdown一下

 

 然后发现mymaster变成6381

总结

Redis哨兵为Redis提供了高可用性。实际上这意味着你可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis部署。

哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置。

下面是在宏观层面上哨兵模式的功能列表:
监控:哨兵不断的检查master和slave是否正常的运行。
通知:当监控的某台Redis实例发生问题时,可以通过API通知系统管理员和其他的应用程序。
自动故障转移:如果一个master不正常运行了,哨兵可以启动一个故障转移进程,将一个slave升级成为master,其他的slave被重新配置使用新的master,并且应用程序使用Redis服务端通知的新地址。
配置提供者:哨兵作为Redis客户端发现的权威来源:客户端连接到哨兵请求当前可靠的master的地址。如果发生故障,哨兵将报告新地址。

哨兵的分布式特性
Redis哨兵是一个分布式系统:
哨兵自身被设计成和多个哨兵进程一起合作运行。有多个哨兵进程合作的好处有:
当多个哨兵对一个master不再可用达成一致时执行故障检测。这会降低错误判断的概率。
即使在不是所有的哨兵都工作时哨兵也会工作,使系统健壮的抵抗故障。毕竟在故障系统里单点故障没有什么意义。

Redis的哨兵、Redis实例(master和slave)、和客户端是一个有特种功能的大型分布式系统。

当然,Redis Sentinel 仅仅解决了 高可用 的问题,对于 主节点 单点写入和单节点无法扩容等问题,还需要引入 Redis Cluster 集群模式 予以解决。

标签:mymaster,故障,Redis,哨兵,sentinel,master,Sentinel
From: https://www.cnblogs.com/ff2223/p/17807708.html

相关文章

  • GO语言使用redis stream队列demo
    GO语言使用redisstream队列demopackagemainimport( "context" "fmt" "github.com/go-redis/redis/v8" "time")varclient*redis.Clientvarctxcontext.Contextvarkey="my_streamKey"//keyvarmyCons......
  • redis单线程
    一,redis单线程是什么意思 Redis的单线程指的是Redis的网络IO和键值对读写是由一个线程来完成的,这是Redis对外提供键值存储服务的主要流程。然而,请注意,Redis的其他功能,如持久化、异步删除、集群数据同步等,实际上是由额外的线程执行的。Redis的单线程模型主要是为了避免资源共享......
  • 分布式锁【Redission】
    一、简介    Redission,一个基于Redis实现的分布式工具,为Redis官网分布式解决方案。    Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(SeparationofConcern),从而让使用者能够将精力更集中地放在处理业务逻辑......
  • 62.redis5安装
    1.依赖包安装yum-yinstallcppbinutilsglibcglibc-kernheadersglibc-commonglibc-develgccmakegcc-c++libstdc++-develtcl2.安装包准备官网https://redis.io下载最新版rediswgethttp://download.redis.io/releases/redis-4.0.14.tar.gztar-zxvfredis-5.0.14.......
  • 查找附近店铺(Redis GEO数据结构实现)
    附近店铺(RedisGEO数据结构实现)GEO数据结构GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有:GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)GEO......
  • 美团面试:Redis 除了缓存还能做什么?可以做消息队列吗?
    这是一道面试中常见的Redis基础面试题,主要考察求职者对于Redis应用场景的了解。即使不准备面试也建议看看,实际开发中也能够用到。内容概览:Redis除了做缓存,还能做什么?分布式锁:通过Redis来做分布式锁是一种比较常见的方式。通常情况下,我们都是基于Redisson来实现分布......
  • 如何使用 Redis 实现后台房间的数据管理?
    ​ ​摘要:利用Redis实现房间业务管理的实践与思考。文|即构业务后台开发团队在一些互动场景中,比如语音聊天室、电商直播等,成员控制、连麦、献花、发弹幕等互动功能,通常要求后台服务器能够储存管理房间及房间内成员的数据。那么如何组织、存储、操作这些数据以完成既定的业......
  • spring boot中redis的使用
    1.添加Redis依赖首先,需要在pom.xml文件中添加Redis依赖: <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-redis</artifactId></dependency>这个依赖包含了SpringDataRedis,以及Jedis和Lettuce这两......
  • 【虹科分享】Redis 不仅仅是内存数据库
    Redis难道仅仅是内存数据库吗?No!加速金融交易!让视频游戏云服务快得令人难以置信!实现实时在线购买!让我们从这些例子开始,探索一些Redis可以实现的其他可能性!文章速览:基于实时分析和库存管理做出更明智的决策实现数据和视频的流畅播放提供关键数据的故障转移服务实时批准数字......
  • Redis【Sentinel 哨兵机制】
    一、简介        二、作用    哨兵是Redis集群架构中一个非常重要的组件,主要功能如下:集群监控。即时刻监控着redis的master和slave进程是否是在正常工作。消息通知。就是说当它发现有redis实例有故障的话,就会发送消息给管理员。自动故障转移。如果redi......