热门

最新

红包

立Flag

投票

同城

我的

发布
m0_52861684
栈老师不回家
3 年前
truem0_52861684

Redis 缓存穿透、缓存击穿和缓存雪崩【比较及解决方案】

① 缓存穿透。大量的无效请求穿透缓存打到数据库上,给数据库造成巨大压力。什么是无效请求?就是根本不存在的数据。
解决方案:对空值也做缓存,为了不影响正常业务,记得设置一个较短的过期时间;对于一定不存在的 key 用布隆过滤器过滤掉,从而避免对数据库的访问。

② 缓存击穿。某个热点数据突然过期失效,刚好这个时候有大量的请求被打过来,那么只能去数据库里查,大并发的请求可能会瞬间把数据库压垮。
解决方案:使用并发锁或队列来控制访问数据库的线程数量;设置永不过期。

③ 缓存雪崩。大量的缓存集中在某一时间同时失效,这样也是大量的请求被直接打到数据库上。与缓存击穿的区别:击穿是某一个 key,雪崩是很多 key。
解决方案:使用并发锁或队列来控制访问数据库的线程数量;将缓存失效时间分散开,不同的 key 设置不同的过期时间。

CSDN App 扫码分享
分享
评论
2
打赏
  • 复制链接
  • 举报
下一条:
mysql 8.0.34安装这样该怎么办
立即登录