缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题( 四 )
2、缓存数据:它的过期时间比缓存标记的时间延长1倍 , 例:标记缓存时间30分钟 , 数据缓存设置为60分钟 。 这样 , 当缓存标记key过期后 , 实际缓存还能把旧数据返回给调用端 , 直到另外的线程在后台更新完成后 , 才会返回新缓存 。
关于缓存崩溃的解决方法 , 这里提出了三种方案:使用锁或队列、设置过期标志更新缓存、为key设置不同的缓存失效时间 , 还有一各被称为“二级缓存”的解决方法 , 有兴趣的读者可以自行研究 。
二、缓存穿透
缓存穿透是指用户查询数据 , 在数据库没有 , 自然在缓存中也不会有 。 这样就导致用户查询的时候 , 在缓存中找不到 , 每次都要去数据库再查询一遍 , 然后返回空(相当于进行了两次无用的查询) 。 这样请求就绕过缓存直接查数据库 , 这也是经常提的缓存命中率问题 。
有很多种方法可以有效地解决缓存穿透问题 , 最常见的则是采用布隆过滤器 , 将所有可能存在的数据哈希到一个足够大的bitmap中 , 一个一定不存在的数据会被这个bitmap拦截掉 , 从而避免了对底层存储系统的查询压力 。
推荐阅读
- 虞姬|王者荣耀:虞姬为什么不能出暗影战斧,难道没听过穿透流打法吗?
- 张飞|边路张飞终于来了,专精装附带伤害和穿透,未来会是一流抗压坦边
- 打野|了解穿透机制,这样的干货知识不能错过
- |英雄联盟:法穿鞋的18点穿透能带来什么?理性分析其实际效果
- 百里守约|萧玦“穿透狙”将成历史,百里守约史诗级削弱。
- 暗影战斧|拥有物理穿透的三级红刀贪婪之噬,能否代替暗影战斧/碎星锤?
- 周泰|三国志战略版:穿透力最强的队伍,月卡党的噩梦,这吴骑杀疯了!
- 狄仁杰|小天离开赛场是谁的错?Doinb打抱不平,雪崩时没有一片雪花是无辜的
- 穿越火线|CF趣味问答:唯一一款穿透力有所强化的AK你知道吗?
- 并发经验八年架构师:带你轻松解决缓存在高并发场景下的问题