缓存击穿 缓存雪崩

Posted wpf-7

tags:

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

1.关于redis的缓存击穿和雪崩

缓存击穿:redis缓存系统是根据key来查询value的值,当value不存在的时候,就会去访问数据库(DB),如果大量的请求进来找不到与之对应的value时,会对数据库造成巨大压力,以至于导致数据库瘫痪,这就叫缓存击穿。

解决方案:1.使用布隆过滤器

          2.不管查询的value是null还是不存在都将值缓存下来,对于这          样的key设置的过期时间比较短。

  缓存雪崩:当缓存服务器重启或者某一时间段缓存大量失效,这样失效的时 候会导致大数据量访问数据库(DB),导致数据库压力太大,导致瘫痪的情况。

  解决方案:

    1.redis集群 或则DB数据库集群,当某一台服务器挂掉,其他的服务

   器顶上。

2.资源保护:可以使用熔断器(netfilx中的hystrix)处理,各种资源线

        程的隔离,保护主线程。

3.设置key不过期

4.不同的key设置不同的过期日期,使key在时间分布上比较均匀,防

        止大量key同时失效。

5.互斥锁:在缓存失效的时候,通过加锁来控制读写数据库的线程数量,

          对于一个key只允许一个线程来查询数据库,其他线程等待。

  

以上是关于缓存击穿 缓存雪崩的主要内容,如果未能解决你的问题,请参考以下文章

REDIS12_缓存雪崩缓存穿透基于布隆过滤器解决缓存穿透的问题缓存击穿基于缓存击穿工作实际案例

REDIS08_缓存雪崩缓存穿透基于布隆过滤器解决缓存穿透的问题缓存击穿基于缓存击穿工作实际案例

缓存击穿 缓存雪崩

Redis 缓存雪崩缓存击穿缓存穿透原因,解决方案?

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

Redis——缓存穿透缓存击穿缓存雪崩分布式锁