版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Redis集群高频面试题及答案(接地气版)一、Redis集群基础认知(初级必问)1、说说RedisCluster集群的核心架构?多少个节点?官方推荐配置?RedisCluster是Redis官方自带的去中心化分片集群,没有中心节点,所有节点对等互通。核心架构:采用主从分片+哈希槽模式,把整个Redis的key空间分成16384个哈希槽,每个主节点负责一部分槽位,从节点只做备份、不负责读写和槽位管理。官方最低标配:6个节点(3主3从),保证高可用,生产环境基本都是3主3从、6主6从这类配比。集群所有节点互相通信,通过Gossip协议同步节点状态、槽位分配、故障信息。2、为什么Redis集群槽位是16384个?不是10000也不是20000?这个数值是官方权衡后的最优解,实战层面记住两个核心原因:1、集群节点间同步槽位配置需要传递位图,16384个槽位只需要2KB左右的位图数据,网络开销极小;如果槽位太多,同步数据包会变大,增加网络压力。2、槽位太少会导致数据分片不均匀,节点扩容、迁移数据粒度太大,不够灵活。补充:Redis集群所有key的路由都是靠CRC16(key)%16384计算槽位,再定位对应主节点。3、Redis集群能不能单个节点存所有数据?和单机Redis有啥区别?可以,但毫无意义。集群的核心目的就是分片存储、分摊压力、扩容、高可用。区别:1、单机Redis:所有数据、所有读写都在一个节点,容量和QPS有上限,挂了直接服务不可用;2、集群Redis:数据分片在多个主节点,读写可分散,容量和并发可横向扩容,主节点挂了从节点自动顶替。4、Redis集群支持事务吗?和单机事务有啥区别?支持单槽位事务,不支持跨槽位事务。简单说:同一个key槽位下的多个命令,可以用multi/exec保证原子性;如果事务涉及多个不同槽位的key,集群直接报错,无法保证原子性。单机Redis可以支持任意key的事务,集群因为分片机制做不到跨槽事务,这是核心短板。二、集群核心原理(中级高频)1、Redis集群key的路由原理是什么?三步流程,面试直接口述即可:1、客户端计算key的哈希槽:CRC16(key)%16384,得到0-16383的槽位编号;2、客户端根据本地缓存的槽位-节点映射表,找到对应负责的主节点;3、直接向目标节点发送命令,完成读写。如果客户端缓存的映射表过期(比如节点迁移、扩容),节点会返回MOVED重定向错误,客户端更新映射表后重试。2、MOVE和ASK错误有什么区别?面试必differentiates1、MOVED:永久重定向。槽位已经彻底迁移完毕,当前节点不再负责该槽位,客户端必须更新本地映射表,后续直接访问新节点。2、ASK:临时重定向。槽位正在迁移中,部分数据在新节点、部分在旧节点,临时指引客户端去新节点查询,不更新本地映射表,迁移结束后恢复正常。3、Redis集群Gossip协议作用是什么?集群节点之间每秒互相发送ping/pong心跳包,核心作用三个:1、同步集群状态:节点在线/离线、主从关系、槽位分配情况;2、故障检测:节点超时未响应,标记为疑似下线;3、数据同步:保证所有节点的集群视图一致。4、Redis集群为什么是去中心化?有什么优缺点?没有主管理者、没有哨兵、没有中心节点,所有主节点地位平等,各自管理自己的槽位,节点间通过Gossip同步状态。优点:1、无中心单点故障,集群稳定性更高;2、扩容、缩容灵活,不依赖中心组件;缺点:1、运维复杂度比主从、哨兵高;2、不支持跨槽事务、跨槽批量操作;3、集群节点越多,Gossip心跳开销略微增加。三、故障转移与高可用(核心重点)1、Redis集群主节点挂了,故障转移流程是什么?完整实战流程,面试直接背:3、从节点选举:该主节点的从节点发起投票,集群内所有主节点参与选举,选出优先级最高、数据最新的从节点;4、主从切换:选中的从节点升级为新主节点,接管原有槽位;5、旧主重启后,自动降级为新主的从节点,恢复备份。2、为什么集群必须半数以上节点确认故障才下线?防止网络分区脑裂问题。如果不做半数确认,网络抖动导致节点隔离时,孤立节点会误以为其他节点挂了,私自切换主从,出现双主节点,数据错乱、写入冲突。过半确认可以保证集群状态统一。3、一个主节点的所有从节点都挂了,集群会怎么样?该主节点对应的所有槽位直接下线,集群整体降级,无法读写该槽位的数据,整个集群对外报错(CLUSTERDOWN)。因为没有从节点做兜底,主节点一旦故障,没有节点可以顶替,对应分片彻底不可用。4、Redis集群脑裂怎么解决?生产怎么规避?脑裂场景:网络分区,集群被分成两部分,两边各自选举主节点,出现双主。规避方案(生产必配):1、配置cluster-min-replicas-to-write1:主节点至少有1个正常从节点,才允许接收写请求;2、开启过半故障确认机制,禁止孤立节点私自切换;3、优化机房网络,减少分区、抖动问题。四、扩容、缩容与数据迁移1、Redis集群怎么扩容?新增主节点完整流程1、启动新的Redis节点,配置集群参数,加入现有集群;2、新节点默认是空主节点,没有分配任何槽位;3、执行槽位迁移命令,从原有老主节点迁移部分槽位到新节点;4、迁移过程渐进式,不影响业务,迁移完成后新节点正式接管读写;5、可选:给新主节点挂载从节点,保证高可用。2、集群缩容下线节点怎么操作?会不会丢数据?不会丢数据,正常缩容是安全的。流程:先把待下线节点的所有槽位全部迁移到其他主节点,确认节点无槽位、无数据后,再执行下线移除节点。如果直接强制下线有槽位的主节点,会直接丢数据、集群宕机。3、Redis集群迁移槽位会不会影响线上业务?基本不影响,属于在线热迁移。迁移单条key时会短暂锁住当前key,其他key正常读写,不会阻塞整个集群,生产可以白天操作,无需停机。五、集群常见问题与优化(面试加分项)1、Redis集群为什么不支持keys、scan全量遍历?keys命令是遍历单节点所有数据,集群数据分散在多个主节点,直接执行无法遍历全量数据,还会阻塞单节点主线程,引发集群卡顿。如果需要遍历全量数据,需要客户端遍历所有主节点,逐个scan汇总。2、Redis集群缓存穿透、击穿、雪崩怎么解决?和单机有区别吗?核心解决方案和单机一致,唯一区别是集群多了分片特性:1、穿透:布隆过滤器、空值缓存、接口校验;2、击穿:互斥锁、热点key永不过期、过期时间随机偏移;3、雪崩:过期时间打散、集群多分片分摊压力、服务熔断降级;集群特有问题:热点key分片倾斜,大量请求打在同一个槽位、同一个节点,导致单节点打爆,需要做热点key拆分。3、什么是Redis集群热点key问题?怎么解决?热点key:某个key访问量极高,所有请求集中在一个主节点,其他节点空闲,集群分片失效,单节点QPS扛不住。解决方案:1、key拼接随机后缀,拆分多个槽位,分散流量;2、本地缓存兜底,减少Redis集群请求量;3、临时扩容对应分片节点,提升单节点能力;4、Redis集群最大瓶颈是什么?1、分片倾斜:热点key、大key导致节点压力不均;2、不支持跨槽事务、批量操作,部分业务场景受限;3、Gossip协议节点越多,心跳同步开销越大;4、单节点依旧是单线程,单个分片的QPS上限固定。六、对比面试题(高频对比)1、Redis主从、哨兵、集群三者区别和适用场景1、主从模式:简单读写分离,无自动故障转移,适合测试、低并发场景;2、哨兵模式:基于主从,增加自动故障转移、监控,不支持分片扩容,容量受单节点限制,适合中小流量生产;3、Cluster集群:支持分片、横向扩容、高可用,容量和并发无上限,适合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭财务健康评估与改善方案
- 通信设备技术支持工程师远程售后服务经理KPI考核表
- 2026年高级(三级)健康照护师职业技能鉴定《理论知识》真题卷及答案
- 2026年特种设备焊接作业金属焊接操作模拟考试题库及答案
- 2026年产品生产线升级计划通报4篇
- 2026年金属冶炼(炼铁)安全生产考试练习题库含答案
- 体育用品品牌营销经理市场占有率绩效评定表
- 电力系统故障原因、设备功用及安全规定等知识试卷及答案
- 2026事业单位工勤技能考试题库(含答案)
- 2026年事业单位考试《综合基础知识》真题库及参考答案
- 《TCWTCA装配式高桩码头节点连接技术规程》
- 2026年校招:中国国际航空试题及答案
- 2026中国建设银行招聘考试(信息技术类)历年参考题库含答案详解
- 2026年工贸企业有限空间作业专项整治考核试卷及答案
- 天津市南开区2025-2026学年九年级上学期期中质量检测历史试题(含答案)
- 2025年国家电网考试历年真题库(附参考答案)
- 2026届江西重点中学协作体高三第二次联考政治试卷
- 危险化学品安全管理2026年培训
- 小学生对自然观察活动的参与体验与科学素养培养课题报告教学研究课题报告
- 20S515 钢筋混凝土及砖砌排水检查井
- smt生产主管的年终总结
评论
0/150
提交评论