【怒怼大厂面试官】听说你精通Redis?说说Redis哨兵

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 面试官:Redis哨兵知道吧?知道的,Sentinel哨兵本质是一个运行在特殊模式下的Redis服务器。面试官:嗯然后呢?它的主要作用是通过检测Redis主从服务器的下线状态,选举出新Redis主服务器,也就是故障转移,来保证Redis的高可用性。

在这里插入图片描述

面试官:咳咳咳,看你简历写了精通Redis,那我就随便考考你吧


面试官:不用慌尽管说,错了也没关系😊。。。


每日分享大厂面试演练,感兴趣就关注我吧❤️

面试官:Redis哨兵知道吧

知道的,Sentinel哨兵本质是一个运行在特殊模式下的Redis服务器。


面试官思考中…


面试官:嗯然后呢?

emmmm。Sentinel哨兵可以是单个节点或是多个节点组成的哨兵系统。

它的主要作用是通过检测Redis主从服务器的下线状态,选举出新Redis主服务器,也就是故障转移,来保证Redis的高可用性。

在这里插入图片描述


面试官思考中…


面试官:你说说是怎么检测Redis主从服务器的下线状态的

好的面试官。检测下线状态有两种方式。

  1. 检测主观下线状态的话,默认情况Sentinel会每隔1s向Redis主、从服务器发送PING命令,通过返回的信息来判断下线状态
  2. 检测客观下线状态的话,是Sentinl在主观判断下线后,会向其他Sentinel进行询问是否同意该节点已下线,当标记下线的数量足够多就会判断客观下线

在这里插入图片描述


面试官思考中…


面试官:有没有A哨兵判断Redis实例下线,但B哨兵判断Redis实例仍然存活的情况呢

有的面试官,主要还是看各个哨兵的配置

像检测主观下线状态的话,要看Sentinel判断Redis实例进入主观下线所需的响应时间长度。A哨兵的配置是10000毫秒、B哨兵是5000毫秒,但Redis实例要在20000毫秒才响应,像这种情况就会发生。

而检测客观下线状态的话,要看配置需要其他Sentinel同意主服务器已下线的数量


面试官思考中…


面试官:领头哨兵怎么选举出来的

是这样的,Sentinel设置局部领头Sentinel的规则是先到先得

最先向目标Sentinel发送设置要求的源Sentinel将成为目标Sentinel的局部领头Sentinel,而之后接收到的所有设置要求都会被目标Sentinel拒绝。

如果有某个Sentinel被半数以上的Sentinel设置成了局部领头Sentinel,那么这个Sentinel就会成为领头Sentinel。


面试官思考中…


面试官:选举出来之后呢,它有什么作用吗

领头Sentinel主要是执行故障转移,也就是选举出新的Redis主服务器,而且只有当Redis主服务器被判断客观下线后才会选举出领头Sentinel。


面试官思考中…


面试官:知道怎么选举新的Redis主服务器吗

哦哦我整理下。

  • 领头Sentinel会将已下线Redis主服务器的所有Redis从服务器保存到一个列表里面
  • 通过删除策略,删除所有处于下线或者断线状态的、删除最近五秒内没有回复过领头Sentinel命令的、删除与已下线主服务器连接断开超过10毫秒的
  • 如果有多个相同优先级的从服务器,将按照复制偏移量进行排序选出偏移量最大的,复制偏移量最大也就是数据同步最新的
  • 最后选出的Redis实例也就成为新的Redis主服务器

在这里插入图片描述

面试官抓抓脑袋,继续看你的简历......


emmmm,得想想考点你不懂的

面试官:未完待续。。。。。。

好了,今天的分享就先到这,我们下期继续。

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8天前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
1月前
|
NoSQL Java API
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
在40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试一线互联网企业时遇到了关于Redis分布式锁过期及自动续期的问题。尼恩对此进行了系统化的梳理,介绍了两种核心解决方案:一是通过增加版本号实现乐观锁,二是利用watch dog自动续期机制。后者通过后台线程定期检查锁的状态并在必要时延长锁的过期时间,确保锁不会因超时而意外释放。尼恩还分享了详细的代码实现和原理分析,帮助读者深入理解并掌握这些技术点,以便在面试中自信应对相关问题。更多技术细节和面试准备资料可在尼恩的技术文章和《尼恩Java面试宝典》中获取。
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
|
1月前
|
监控 NoSQL 算法
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
|
1月前
|
NoSQL 算法 Redis
Redis面试篇
Redis面试篇
36 5
|
20天前
|
存储 NoSQL Redis
Redis常见面试题:ZSet底层数据结构,SDS、压缩列表ZipList、跳表SkipList
String类型底层数据结构,List类型全面解析,ZSet底层数据结构;简单动态字符串SDS、压缩列表ZipList、哈希表、跳表SkipList、整数数组IntSet
|
1月前
|
缓存 NoSQL 算法
面试题:Redis如何实现分布式锁!
面试题:Redis如何实现分布式锁!
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6
|
9天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构