美文网首页
Redis缓存雪崩

Redis缓存雪崩

作者: xuweiqiang | 来源:发表于2019-06-03 13:00 被阅读0次

    Redis缓存雪崩和穿透乍一看好像差不多,概念容易混淆.

    缓存雪崩是指在我们设置缓存失效时间上时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部打到后端数据库,数据库一时请求过大,数据库cpu和IO一时负载过大,造成雪崩。如果不能理解的话,闭上眼睛想象一下,雪山崩塌的场景,还不能理解的话,那就算了吧.

    用户请求.jpg

    这块其实业界有很多解决方案,但是每一种方案说是完美的,需要结合实际并发量.第一种就是加锁排队,串行的去执行,但是这本质上是一种缓解,允许等待,从用户角度来说不是很好.第二种比较多的就是mutex互斥锁,比如Redis分布式锁SetNX,如果缓存里面没有并不是去加载数据库.第三种限流:比如用滑动窗口控制,在大流量来的时候缩紧;或者通过令牌桶、漏桶算法等.第四种就是做二级缓存,或者双缓存策略。比如B为原始缓存,B2为拷贝缓存,B失效时,可以访问B2,B1缓存失效时间设置为短期,B2设置为长期。这块有点master-slave,主从的意思.

    这些技术手段,想达到的终极目标无外乎就是让失效时间达到均匀的状态.

    相关文章

      网友评论

          本文标题:Redis缓存雪崩

          本文链接:https://www.haomeiwen.com/subject/tfkcxctx.html