`
alph0618
  • 浏览: 55361 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

转:redis sentinel模式下,如何选举新的master

 
阅读更多

sentinel是一个独立于redis之外的进程,不对外提供key/value服务。在redis的安装目录下名称叫 redis-sentinel  主要用来监控redis-server进程,进行master/slave管理,如果你的redis没有运行在master/slave模式下,不需要设置sentinel。

 
两个基本概念
  1. S_DOWN :subjectively down,直接翻译的为"主观"失效,即当前sentinel实例认为某个redis服务为"不可用"状态.
  2. O_DOWN :objectively down,直接翻译为"客观"失效,即多个sentinel实例都认为master处于"SDOWN"状态,那么此时master将处于ODOWN,ODOWN可以简单理解为master已经被集群确定为"不可用",将会开启failover.

redis2.8.7的选举有两个条件,首先是要下面的条件过滤掉一些节点

一、使用如下条件筛选备选node:

1、slave节点状态处于S_DOWN,O_DOWN,DISCONNECTED的除外

2、最近一次ping应答时间不超过5倍ping的间隔(假如ping的间隔为1秒,则最近一次应答延迟不应超过5秒,redis sentinel默认为1秒)

3、info_refresh应答不超过3倍info_refresh的间隔(原理同2,redis sentinel默认为10秒)

4、slave节点与master节点失去联系的时间不能超过( (now - master->s_down_since_time) + (master->down_after_period * 10))。总体意思是说,slave节点与master同步太不及时的(比如新启动的节点),不应该参与被选举。

5、Slave priority不等于0(这个是在配置文件中指定,默认配置为100)。

二、从备选node中,按照如下顺序选择新的master

1、较低的slave_priority(这个是在配置文件中指定,默认配置为100)

2、较大的replication offset(每个slave在与master同步后offset自动增加)

3、较小的runid(每个redis实例,都会有一个runid,通常是一个40位的随机字符串,在redis启动时设置,重复概率非常小)

4、如果以上条件都不足以区别出唯一的节点,则会看哪个slave节点处理之前master发送的command多,就选谁。

分享到:
评论

相关推荐

    redis哨兵模式.rar

    下面是关于Redis Sentinel模式的详细说明: 1. **哨兵系统架构**: Redis Sentinel是一个分布式系统,由多个Sentinel节点组成,它们之间通过Gossip协议通信,监控Redis主从集群的状态。当Sentinel节点发现主服务器...

    redis(哨兵模式配置)

    4. **故障转移(Failover)**:当主服务器出现故障,Sentinel会根据预设策略选举一个新的主服务器,并将从服务器升级为主服务器。同时,它会通知应用客户端新的主服务器地址。 5. **配置更新**:在故障转移后,...

    Redis Sentinel实现高可用配置的详细步骤

    当Sentinel检测到主节点故障并达到法定人数时,它会选举一个从节点作为新的主节点,并通知其他Sentinel和从节点这个变化。`sentinel failover-timeout`参数定义了故障转移操作的超时时间。 总结来说,Redis ...

    redis哨兵模式配置文件

    在哨兵模式下,多个Sentinel实例协同工作来监控主Redis实例和其从属节点的状态,确保在主节点故障时能够无缝地切换到一个从节点,从而保证服务的连续性。下面我们将深入探讨Redis Sentinel的配置文件以及如何设置和...

    Redis Sentinel服务配置流程(详解)

    - **启动 Sentinel**:Redis Sentinel 是 Redis 服务器的一个特殊模式,可以通过 `redis-sentinel` 命令或在启动 Redis 时添加 `--sentinel` 选项来运行。 - **配置文件**:通常使用 `sentinel.conf` 文件进行配置...

    Redis中Sentinel高可用解决方案.docx

    - `tilt`:是否进入了 TILT 模式,该模式下 Sentinel 会暂停某些功能以避免误操作。 - `running_scripts`:当前正在执行的脚本数量。 - `tilt_start_time`:进入 TILT 模式的开始时间。 - `previous_time`:上一...

    redis主从集群搭建及容灾部署(哨兵sentinel).pdf

    当 Master 失效时,Sentinel 系统会选举新的 Master,并通知其他节点进行数据同步。在本例中,部署了三个哨兵节点(6371、6372、6373),这样可以实现多数投票机制,增加系统的稳定性。哨兵配置需要包括各个节点间的...

    redis-sentienl-master-.pdf

    当主服务器宕机时,Sentinel 会发起故障转移,选举新的主服务器,并通知其他从服务器改变它们的角色,成为新主服务器的从服务器。 6. **Redis 集群安装**: 除了哨兵模式,Redis 还支持集群模式,可以在多台服务器...

    Redis 高可用架构最佳实践.ppt

    另一种常见实践是使用Sentinel配合VIP(Virtual IP),同样可实现秒级切换,但同样存在Sentinel模式下短暂的服务不可用问题。封装客户端直连Sentinel端口能更快速地检测到故障,但对客户端有所侵入,且需要Sentinel...

    redis 高可用详细文档

    部署Sentinel系统时,通常推荐配置奇数个Sentinel实例,比如3个,以便在发生故障时可以进行选举,决定新的主服务器。Sentinel系统中有一个主观下线的概念,这是单个Sentinel根据特定的时间间隔无法与Redis主服务器...

    CentOS安装Redis

    Sentinel模式可以提供高可用性支持,能够监控主从实例的状态,并在主实例故障时自动选举出新的主实例。 - **配置Sentinel**:创建`sentinel-master.conf`和`sentinel-slave.conf`文件,配置`sentinel monitor`等...

    Linux下Redis的安装和部署(三)--哨兵模式的部署.pdf

    在Linux环境下部署Redis时,哨兵(Sentinel)模式是一种高可用性的解决方案,它能够监控Redis主从集群的状态,自动进行故障检测、故障恢复以及配置更新。以下是对哨兵模式部署的详细解释: 1. **哨兵模式配置文件**...

    Redis高可用之哨兵+主从模式总结

    在这个场景下,主从模式和哨兵模式结合使用,可以构建出一套高效且可靠的 Redis 高可用解决方案。 1. **主从模式**: 主从模式是 Redis 提供的一种基础的高可用策略,它通过数据复制来实现读写分离。主节点负责...

    SpringBoot集成Redis哨兵Demo

    哨兵系统的主要职责是监控Redis主从集群的健康状态,当检测到主服务器故障时,它会自动发起故障切换,选举新的主服务器,并通知应用更新连接信息。在这个过程中,我们的SpringBoot应用无需关心具体的故障处理细节,...

    运维部-redis服务

    4. **Redis Sentinel模式** - **优点**:实现自动故障转移。 - **缺点**:需要配置多个Sentinel实例监控主从状态,不易水平扩展。 5. **Redis Cluster模式** - **优点**:分布式部署,支持数据分片和高可用。 ...

    高性能redis集群.pptx

    它会定期检查每个节点的状态,当发现主节点失效时,会启动故障转移,选举新的主节点,并更新所有从节点的配置。 5. **Cluster模式**:Redis 3.0引入了官方的Cluster模式,实现了数据的自动分片和故障恢复。在...

    Redis主从搭建

    - 执行`redis-cli -p 6379`命令进入Redis命令行模式。 - 如果设置了密码,需要先执行`auth <密码>`进行认证。 - 可以通过执行如`ping`等命令来验证Redis服务是否正常运行。 7. **停止Redis服务**: - 使用命令`...

    redis工作原理及单机主从集群版安装使用说明书

    当检测到主节点失效时,Sentinel会根据预设规则选举新的主节点,并通知其他从节点改变角色,连接新的主节点,从而实现自动故障恢复。 Redis集群(Cluster)配置则是为了进一步扩展Redis的处理能力,支持数据分片...

    redis主从哨兵配置

    然后,需要启动哨兵,进入 src 目录下执行 ./redis-sentinel ../sentinel.conf 命令。 五、测试哨兵切换 1. 测试主从切换 在主节点执行 shutdown 命令关闭服务,然后连接 7001 端口,执行 info 命令查看主从状态...

    Redis集群模式搭建

    Redis 集群模式搭建是将多个 Redis 服务器组织成一个...此外,了解和掌握Redis的哨兵(Sentinel)系统或者Redis Cluster的自动故障转移机制也是很重要的,它们能在节点故障时自动选举新的主节点,确保服务的连续性。

Global site tag (gtag.js) - Google Analytics