码农日记

薄洪涛的个人博客

redis缓存雪崩,缓存击穿,缓存穿透

image.png

缓存雪崩

同一时间大量redis缓存数据失效,造成大量请求涌入数据库,数据库压力增大崩掉

解决方案
  1. 缓存过期时间加随机值

  2. 增加过期表示,缓存过期后,自动更新缓存

缓存穿透

缓存和数据库中都没有的数据,每次查询都会透过缓存直接查库,最后返回空,疯狂查询这条不存在的数据时,数据库压力增大崩掉

解决方案
  1. 缓存空对象,数据库查询不存在,在redis中缓存结果

  2. 布隆过滤器,过滤掉肯定不存在的结果

缓存击穿

缓存中没有但是数据库中有的数据(缓存中某个热点过期,数据还未载入缓存),大量请求涌入查询此热点,引起数据库压力增大崩掉

解决方案
  1. 热点永不过期

  2. 加互斥锁

  • 评论列表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

版权所有 | 转载请标明出处