`

Redis Sentinel

 
阅读更多

Redis Sentinel 是 redis的高可用实现方案:故障发现、故障自动转移、配置中心、客户端通知,Jedis原生支持,客户端在连接时,实际连接的Sentinel集合,当Sentinel观测到变化和故障转移后,会Pub到client端,实际使用了redis的pub/sub功能。

 

参考自

https://cloud.tencent.com/developer/article/1021467

 

采用了Raft算法,和ZAB类似,都是简化版的Paxos实现

 

前提:

1. 默认情况下,sentinel都是Follower状态

2. 当Follower判断某个master客观下线,会发起选sentinel-Leader选举

 

过程中保证:

1. 每次发起投票,epoch都会加1

2. 每轮(epoch用来标识一轮投票,也叫term任期)每个sentinel只会投一次票

3. sentinel都会优先投自己

4. 每轮投票都有超时时间,超时时间内未选出Leader,会开启下一轮

5. 超过半数投票或者投票超过配置,则选出LeaderLeader去完成故障转移

 

选举算法效率:

1. 率先完成客观下线判断的sentinel,优先开始选举

2. 每个sentinel每轮仅仅投票一次

以上两点基本可以保证一轮就可以选出Leader,因为率先发起的节点会大概率当选Leader

 

 

故障转移:

1. 选取最靠谱,数据最新的slave做master;至少考虑 slave心跳是否正常、slave当前的同步偏移量offset(越大表明数据越新)

2. slave当选为新master后,其他slave挂载到它下面

分享到:
评论

相关推荐

    redissentinel基于phpredis扩展的redissentinel客户端

    标题中的“redissentinel基于phpredis扩展的redissentinel客户端”指的是一个使用PHP语言开发的Redis Sentinel客户端,它依赖于phpredis扩展来实现与Redis Sentinel服务的交互。Redis Sentinel是Redis集群的一个重要...

    windows redis sentinel 集群配置

    Windos系统的Redis sentinel集群。 启动命令:D:\redis-2.8.18.rar\redis-2.8.18>redis-server.exe sentinel.conf --sentinel

    redis sentinel api脚本

    Redis Sentinel 主从部署 使用Python脚本获取Redis主从节点信息

    基于phpredis封装的redis-sentinel客户端redis-sentinel.zip

    示例:$sentinel = new \Jenner\RedisSentinel\Sentinel(); $sentinel->connect('127.0.0.1', 6379); $address = $sentinel->getMasterAddrByName('mymaster'); $redis = new Redis(); $redis->connect($...

    redis 哨兵(sentinel)与springboot集成实战-redis-sentinel.zip

    Redis Sentinel是Redis的一个高可用性解决方案,它提供了监控、故障检测和自动故障转移等功能,确保在主Redis服务器出现故障时,系统能够无缝地切换到备份节点,从而保持服务的连续性和稳定性。SpringBoot是一个轻量...

    redis sentinel与redis cluster 集群配置

    Redis Sentinel和Redis Cluster是两种常见的Redis集群解决方案,用于提高Redis数据库的可用性和可扩展性。在本篇文章中,我们将深入探讨这两个系统的工作原理、配置步骤以及它们各自的特点。 首先,让我们了解一下...

    redis Sentinel模式详解.docx

    Redis Sentinel 模式详解 从标题、描述、标签和部分内容中,我们可以提取出以下几个重要的知识点: 1. Redis 在 Web 开发中的应用:Redis 是一种基于内存的 key-value 数据库,经常用于存储用户登录态、加速热数据...

    Redis Sentinel(哨兵)部署.pdf

    Redis Sentinel(哨兵)部署 Redis Sentinel是Redis的高可用性解决方案,当主节点发生故障时,可以自动进行故障转移。部署Redis Sentinel主要涉及以下几个关键点: 1. Redis Sentinel的作用与优点 Redis Sentinel...

    spring + redis + sentinel 配置

    Sentinel是Redis的一个高可用性解决方案,它可以监控Redis实例,并在主节点出现问题时自动进行故障转移,确保服务的连续性。 在这个"spring + redis + sentinel"配置中,我们将探讨如何整合这三个组件以创建一个...

    第四十六章:Redis sentinel哨兵集群1

    【Redis Sentinel哨兵集群详解】 Redis Sentinel是一种高可用性解决方案,它是Redis官方提供的一种分布式系统,专门用于监控Redis集群中的Master主服务器状态。在Master出现故障时,Sentinel能够自动进行故障转移,...

    spring+springmvc+mybatis+redisSentinel

    本项目"spring+springmvc+mybatis+redisSentinel"结合了Spring、SpringMVC、MyBatis以及Redis Sentinel,构建了一个高可用的Web应用程序,同时利用了Redis作为缓存系统提升性能。以下将详细讲解这些技术及其整合过程...

    Redis Sentinel主从高可用方案1

    Redis Sentinel 是 Redis 为了实现高可用性(High Availability, HA)而设计的一种分布式监控和故障转移系统。它能够监控主从结构的 Redis 集群,并在主节点出现故障时,自动将一个从节点提升为主节点,从而确保服务...

    redis-sentinel集群及双机热备

    Redis Sentinel集群和双机热备是 Redis 高可用性(High Availability, HA)的重要组成部分,它们确保了在主节点故障时能够快速切换到备份节点,从而维持服务的连续性。以下将详细介绍这两个概念以及相关配置和操作。...

    linux docker redis sentinel 安装配置文件

    linux docker redis sentinel 安装配置文件

    redishappy, Redis Sentinel高availabillity守护进程.zip

    redishappy, Redis Sentinel高availabillity守护进程 redishappy 提供高度可用的Redis服务的一种方法是使用 Redis Sentinel 部署。Redis Sentinel监视你的Redis集群并检测故障,提升从节点成为新的主机。 RedisHappy...

    2、Redis sentinel原理及实现源码剖析-冯光普1

    Redis Sentinel是Redis的高可用性解决方案,它提供监控、故障检测、自动故障转移以及配置提供者的功能。在冯光普的演讲中,他详细解析了Sentinel的工作原理和源码实现。 Sentinel系统的核心特性包括: 1. **分布式...

    laravel-redis-sentinel-drivers:用于Laravel和Lumen的Redis Sentinel集成

    用于Redis Sentinel的Laravel驱动程序 用于Laravel和Lumen的Redis Sentinel集成。 有助于为配置为主从复制的Redis服务器提供高可用性,监视和负载平衡。 内置了对Redis的支持,但是我们不能灵活地开箱即配置...

    读书笔记:redis sentinel源码入门阅读指南.zip

    读书笔记:redis sentinel源码入门阅读指南

    ansible-redis, 高度可以配置的Ansible角色,可以从源代码安装Redis和 Redis Sentinel.zip

    ansible-redis, 高度可以配置的Ansible角色,可以从源代码安装Redis和 Redis Sentinel ansible-redis Ansible 2.1 与大多数版本的ubuntu/debian和 rhel/centos 6兼容电子邮件内容安装工具正在开始运行。单一 Redis ...

Global site tag (gtag.js) - Google Analytics