参考答案
结论:解决Redis缓存穿透(查询不存在数据绕过缓存击打数据库),常用三招:缓存空值、布隆过滤器、接口校验。原理:穿透因缓存与数据库皆无该key,请求每次落到DB;缓存空对象(如NULL)并设短过期(如30s)可拦截重复查询;布隆过滤器用位数组与多哈希函数,能廉价判断key“绝对不存在”从而前置拦截;接口层校验参数合法性(如ID范围)。对比:缓存击穿是热点key失效,用互斥锁或逻辑过期;缓存雪崩是大量key同失效,用随机TTL。示例:将现有所有合法key灌入布隆过滤器,请求先查过滤器,不存在直接返回。