Redis高可用解决方案:哨兵(Sentinel)
哨兵是Redis的高可用解决方案:由多个哨兵组成的系统监视主从服务器,可以将下线的主服务器属下的某个从服
务器升级为新的主服务器,继续保障运行。
启动并初始化Sentinel
redis-sentinel /path/to/your/sentinel.conf
Sentinel本质是一个Redis服务器,但是它不会载入RDB or AOF文件。
选举领头Sentinel
当主服务器被判断为客观下线时,监视这个主服务器的哨兵会进行协商,选举一个领头哨兵,由领头哨兵,对下线
的主服务器执行故障转移操作。
所有监控这个 主 的在线哨兵都有资格成为领头哨兵。
每次进行领头哨兵选举之后,不论选举是否成功,所有哨兵的配置纪元的值会自增一次。配置纪元实际上是一
个计数器,毫无特别。
在一个配置纪元里,所有哨兵都有一次将某个哨兵设置为局部领头哨兵的机会,并且局部领头一旦设置,在这个配置纪元里不能再更改。
每个哨兵都会要求其他哨兵将自己设置为局部领头。
哨兵设置局部领头的规则是先到先得。
如果有某个哨兵被半数以上的哨兵设置成了局部领头,这个哨兵成为领头哨兵。
在给定时限内,直到选出领头哨兵为止。
故障转移
选举产生领头哨兵后,领头执行故障转移操作:
在下线主的从服务器里,挑选一个成为主服务器。
让其他从服务器改为复制新的主服务器。
下线的主服务器成为从服务器。
选出新的主服务器
新主服务器是怎样炼成的
领头哨兵会按照规则进行过滤:
删除断线的从服务器。
删除最近五秒没有回复领头的从服务器。
保留数据比较新的从服务器。
最后就选择offset最大,运行ID最小的从服务器。
Reference
《Redis设计与实现》
Redis高可用解决方案:哨兵(Sentinel)的更多相关文章
- Redis高可用之哨兵模式Sentinel配置与启动(五)
0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...
- (六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)
参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https:/ ...
- Redis 高可用之哨兵模式
参考 : https://mp.weixin.qq.com/s/Z-PyNgiqYrm0ZYg0r6MVeQ 一.redis高可用解决方案 redis主从 优点:1.高可靠性,主从实时备份,有效解 ...
- 老司机带你玩转面试(4):Redis 高可用之哨兵模式
前文回顾 建议前面文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 「老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩.击穿. ...
- Redis高可用方案-哨兵与集群
Redis高可用方案 一.名词解释 二.主从复制 Redis主从复制模式可以将主节点的数据同步给从节点,从而保障当主节点不可达的情况下,从节点可以作为 后备顶上来,并且可以保障数据尽量不丢失(主从 ...
- Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
Redis的哨兵机制是官方推荐的一种高可用(HA)方案,我们在使用Redis的主从结构时,如果主节点挂掉,这时是不能自动进行主备切换和通知客户端主节点下线的. Redis-Sentinel机制主要用三 ...
- Redis学习三:Redis高可用之哨兵模式
申明 本文章首发自本人公众号:壹枝花算不算浪漫,如若转载请标明来源! 感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫 22.jpg 前言 Redis 的 Sentinel 系统用于管理多个 Redi ...
- redis高可用(哨兵机制)
redis哨兵机制:redis的哨兵系统用于管理多个reids服务器,该系统主要有三个作用: 监控:哨兵 会不断地检查你的主服务(Master)和从服务器(Slave)是否运作正常. 提醒:当被监控的 ...
- Redis高可用-主从,哨兵,集群
主从复制 Master-Slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave通过复制master ...
随机推荐
- java多线程的一些面试题
8.callable与fature Callable与Runnable类似,但是Callable有返回值,并且有一个参数化的类型. Fature保存异步计算的结果.9.执行器 Executor.10. ...
- Saruman's Army
直线上有N个点. 点i的位置是Xi.从这N个点中选择若干个,给它们加上标记. 对每一个点,其距离为R以内的区域里必须有带有标记的点(自己本身带有标记的点, 可以认为与其距离为 0 的地方有一个带有标记 ...
- 通过location响应头实现重定向
package day08; import java.io.IOException; import javax.servlet.ServletException; import javax.servl ...
- MongoDB学习笔记三 - MongooseAPI操作数据
在上一篇我们讲了如何通过Mongoose想数据库动态添加数据, 接下来我们一起来看一下如何通过Mongoose来对数据库进行增删改查等一系列操作 Model 对象的方法 remove(cinditio ...
- Flink 保证ExactlyOnce
Flink 保证 ExactlyOnce 1.使用执行ExactlyOnce 的数据源,比如 kafka 2.使用FlinkConsumer,开启CheckPointing,偏移量会保存通过Check ...
- windows安装trojan记录
1.trojan 客户端安装教程 https://v2raytech.com/trojan-clients/ 2.chrome安装插件(crx文件)教程 https://www.jianshu.com ...
- Linux 单实例oracle安装步骤
一.查看逻辑盘大小,执行 lsblk 二.查看硬盘及分区信息 ,执行 fdisk -l 三.将物理硬盘分区初始化为物理卷,以便LVM使用 ,创建pv pvcreate /dev/sdb 四.查看物理卷 ...
- 从零开始实现简单 RPC 框架 8:网络通信之 Request-Response 模型
Netty 在服务端与客户端的网络通信中,使用的是异步双向通信(双工)的方式,即客户端和服务端可以相互主动发请求给对方,发消息后不会同步等响应.这样就会有一下问题: 如何识别消息是请求还是响应? 请求 ...
- 大厂的 SDK 写法,偷学到了!
自己动手写 SDK 的经验技巧分享 大家好,我是鱼皮. 最近因为工作需要,自己动手写了一些项目的通用 SDK.在编写的过程中,我阅读和参考了不少公司中其他大佬写的 SDK,也总结了一些开发 SDK 的 ...
- springMVC学习总结(三) --springMVC重定向
根据springMVC学习总结(一) --springMVC搭建搭建项目 在com.myl.controller包下创建一个java类WebController. 在jsp子文件夹下创建一个视图文件i ...