缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题( 二 )
一、缓存雪崩
缓存雪崩我们可以简单的理解为:由于原有缓存失效 , 新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间 , 在同一时刻出现大面积的缓存过期) , 所有原本应该访问缓存的请求都去查询数据库了 , 而对数据库CPU和内存造成巨大压力 , 严重的会造成数据库宕机 。 从而形成一系列连锁反应 , 造成整个系统崩溃 。
缓存正常从Redis中获取 , 示意图如下:
缓存失效瞬间示意图如下:
缓存失效时的雪崩效应对底层系统的冲击非常可怕!大多数系统设计者考虑用加锁或者队列的方式保证来保证不会有大量的线程对数据库一次性进行读写 , 从而避免失效时大量的并发请求落到底层存储系统上 。 还有一个简单方案就时讲缓存失效时间分散开 , 比如我们可以在原有的失效时间基础上增加一个随机值 , 比如1-5分钟随机 , 这样每一个缓存的过期时间的重复率就会降低 , 就很难引发集体失效的事件 。
推荐阅读
- 虞姬|王者荣耀:虞姬为什么不能出暗影战斧,难道没听过穿透流打法吗?
- 张飞|边路张飞终于来了,专精装附带伤害和穿透,未来会是一流抗压坦边
- 打野|了解穿透机制,这样的干货知识不能错过
- |英雄联盟:法穿鞋的18点穿透能带来什么?理性分析其实际效果
- 百里守约|萧玦“穿透狙”将成历史,百里守约史诗级削弱。
- 暗影战斧|拥有物理穿透的三级红刀贪婪之噬,能否代替暗影战斧/碎星锤?
- 周泰|三国志战略版:穿透力最强的队伍,月卡党的噩梦,这吴骑杀疯了!
- 狄仁杰|小天离开赛场是谁的错?Doinb打抱不平,雪崩时没有一片雪花是无辜的
- 穿越火线|CF趣味问答:唯一一款穿透力有所强化的AK你知道吗?
- 并发经验八年架构师:带你轻松解决缓存在高并发场景下的问题