Redis缓存击穿、缓存穿透、缓存雪崩

缓存击穿

缓存击穿,是指查询一个数据库一定不存在的数据,缓存不存在,直接请求数据库。

避免方案

  1. 对查询为空的结果也添加缓存
  2. 将一定不存在的key进行过滤

缓存穿透

缓存穿透,是指某个热点访问数据在失效瞬间,被大并发集中访问,直接请求数据库。

避免方案

  1. 通过加锁或队列实现单线程读写,先在缓存内读取,没有再查数据库存入缓存

缓存雪崩

缓存雪崩,是指在某个时间段缓存集中过期,直接请求数据库。

避免方案

  1. 同缓存穿透,实用加锁策略
  2. 数据预热,在即将发生雪崩前更新缓存,手动触发加载更新的缓存,设置不同过期时间
  3. 双份缓存,一份短期缓存,一份长期缓存,优先访问短期缓存
  4. 设置缓存永不过期
发布了211 篇原创文章 · 获赞 68 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/weixin_42078760/article/details/104077889