**缓存穿透(Cache Penetration)**是指:查询的数据在缓存和数据库中都不存在,导致每次请求都直接打到数据库上,缓存完全失去保护作用。
查询不存在的数据(最常见)
id = -1、id = 999999999)恶意攻击 / 爬虫刷接口
业务逻辑设计不合理
缓存未缓存“空结果”
请求 id = 123456(数据库无此用户)
→ Redis 未命中
→ MySQL 未命中
→ 返回空
→ 未写缓存
→ 下次再来,还是穿透
| 问题 | 原因 |
|---|---|
| 缓存穿透 | 数据根本不存在 |
| 缓存击穿 | 热点 key 过期,瞬间大量请求 |
| 缓存雪崩 | 大量 key 同时失效 |
如果你愿意,我可以帮你画一张缓存穿透示意图,或结合你当前使用的技术栈(Redis / MySQL / 接口层)给具体方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。