熙牛医疗 Java后端实习二面面经

熙牛医疗 · java后端日常实习 · 二面 · 2026-04

面试题目

项目经历: 面试官主要拷打项目细节,指出在项目介绍时逻辑不够清晰,对底层实现的深度挖掘不足。

八股文考察:

  1. redisson 的看门狗机制讲一下。
  2. Redis 的缓存击穿概念给我讲一下,怎么解决?
  3. 哪些场景会导致 MySQL 索引失效?
  4. 有 A、B、C 三个字段的联合索引,查询语句 WHERE A=xxx ORDER BY C,这种情况可以走索引吗?

参考解析

  1. Redisson看门狗机制: 当获取分布式锁时,如果未指定锁过期时间,Redisson会启动一个后台线程(Watchdog),每隔一段时间(默认10秒)自动延长锁的过期时间(默认30秒),防止业务执行耗时过长导致锁提前释放。

  2. Redis缓存击穿及解决: 指高频热点Key过期瞬间,大量请求直接打到数据库。解决方法:1. 设置热点数据永不过期;2. 使用互斥锁(如分布式锁),确保只有一个请求去查库更新缓存;3. 逻辑过期,在缓存中增加逻辑过期时间字段,提前异步更新。

  3. MySQL索引失效场景: 包括:违反最左前缀原则、对索引列进行函数操作或运算、使用!=或<>导致全表扫描、LIKE查询以%开头、字符串类型不加引号导致隐式类型转换,以及使用OR连接条件导致索引失效。

  4. 联合索引(A,B,C)与排序: 对于WHERE A=xxx ORDER BY C,由于过滤条件仅涉及A,索引中B缺失导致断层,无法通过索引完成覆盖排序,通常会触发Filesort。若要优化,需建立(A, C)联合索引以满足最左前缀原则并利用索引排序。