一、高频面试题
问题1:什么是缓存穿透?它对系统的核心危害是什么?
参考答案:缓存穿透指的是用户请求的数据在缓存和数据库中都不存在,导致请求直接绕过缓存打到数据库。核心危害是大量无效请求会耗尽数据库资源,比如CPU、内存或连接数,严重时可能引发数据库宕机,进而导致整个系统崩溃,影响服务可用性。
-
第一步追问:缓存穿透和缓存雪崩有什么本质区别?
参考答案:两者本质不同。缓存穿透是请求不存在的数据,攻击或逻辑漏洞导致“无中生有”;缓存雪崩是大量缓存同时失效,请求集中打到数据库,属于“有中生无”。前者是恶意或异常请求问题,后者是缓存架构设计问题。 -
第二步追问:怎么从系统日志中识别缓存穿透?
参考答案:可以观察日志中是否有大量相同或规律性的不存在的key请求,比如频繁出现“数据库查询结果为空”的记录,且请求量远超正常业务场景。同时,这类请求的响应时间可能较短(因为直接查库返回空),但数据库连接数或QPS会异常升高。 -
第三