缓存穿透、缓存击穿与缓存雪崩
缓存穿透
概念
访问一个缓存中不存在的key,请求会打到db上,流量大时db会挂掉;
解决方案
1.使用布隆过滤器,用于存储可能访问的key,不存在的key直接被过滤;
2.访问key未在db查询到值,但还是将空值写入缓存,但可以设置较短的过期时间;
缓存击穿
概念
一个缓存中存在的key,在缓存过期的一刻,存在大量访问请求,这些请求都会击穿到db,造成db访问量剧增,db压力增加;
解决方案
在访问key之前采用setnx来设置另一个短期key来锁住当前Key的访问,访问结束以后再删除该短期key;
缓存雪崩
概念
大量的key设置了相同的过滤时间,导致在缓存中同一时刻全部失效,造成瞬时db压力剧增,引起雪崩;
解决方案
在给缓存加上过期时间时可以额外加上一个随机时间,使得每个Key的过期时间分布开来,不会集中在同一时刻失效;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix