数据库面试题——redis缓存穿透缓存击穿与缓存雪崩

Posted _瞳孔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库面试题——redis缓存穿透缓存击穿与缓存雪崩相关的知识,希望对你有一定的参考价值。

缓存穿透

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。

常用解决方案:

  • 缓存空对象

    • 优点:实现简单,维护方便
    • 缺点:
      • 额外的内存消耗:可以设置过期时间
      • 可能造成短期的不一致:可能在空对象没过期的时候数据库中真的插入了该数据
  • 布隆过滤:详情可见我的另一个博客:布隆过滤器详解

缓存击穿

缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。

常见的解决方案有两种:互斥锁与逻辑过期


缓存雪崩

缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。

解决方案:

  • 给不同的Key的TTL添加随机值,避免key集中过期
  • 利用Redis集群提高服务的可用性
  • 给缓存业务添加降级限流策略
  • 给业务添加多级缓存

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人空间

以上是关于数据库面试题——redis缓存穿透缓存击穿与缓存雪崩的主要内容,如果未能解决你的问题,请参考以下文章

Redis高频面试题之缓存穿透缓存击穿和缓存雪崩

让我们一起进大厂-高频面试题Redis之缓存穿透缓存击穿和缓存雪崩

什么是Redis缓存雪崩缓存穿透和缓存击穿?含面试题+答案

Redis缓存穿透击穿雪崩预热更新降级

Redis缓存穿透击穿雪崩预热更新降级

Redis缓存穿透击穿雪崩预热更新降级