并发经验八年架构师:带你轻松解决缓存在高并发场景下的问题( 三 )
缓存穿透问题
缓存穿透在有些地方也称为“击穿” 。 很多朋友对缓存穿透的理解是:由于缓存故障或者缓存过期导致大量请求穿透到后端数据库服务器 , 从而对数据库造成巨大冲击 。
这其实是一种误解 。 真正的缓存穿透应该是这样的:
在高并发场景下 , 如果某一个key被高并发访问 , 没有被命中 , 出于对容错性考虑 , 会尝试去从后端数据库中获取 , 从而导致了大量请求达到数据库 , 而当该key对应的数据本身就是空的情况下 , 这就导致数据库中并发的去执行了很多不必要的查询操作 , 从而导致巨大冲击和压力 。
可以通过下面的几种常用方式来避免缓存传统问题:
缓存空对象
对查询结果为空的对象也进行缓存 , 如果是集合 , 可以缓存一个空的集合(非null) , 如果是缓存单个对象 , 可以通过字段标识来区分 。 这样避免请求穿透到后端数据库 。 同时 , 也需要保证缓存数据的时效性 。 这种方式实现起来成本较低 , 比较适合命中不高 , 但可能被频繁更新的数据 。
推荐阅读
- 梦幻西游|梦幻西游:千亿经验奖励5连击!长久地坚持在此刻能否收获幸运?
- 手机游戏|梦幻西游手游:如何保证贸易少亏甚至小赚 小号、经验环必不可少
- 我的世界|我的世界:“最奢侈”的附魔是什么?我给胡萝卜钓竿打上经验修补
- 穿越火线|LOL-S11决赛:EDG“八年磨一冠”,3-2击败DK问鼎S11冠军
- 盲僧|LOL手游盲僧是英雄代表?灵药再推进阶教学,双区王者的经验
- 传奇世界|传奇世界:获声望的几种途径经验
- 大话西游2|大话西游2:一头年兽6千万经验,玩家怒刷3小时,疯狂上电视!
- 戒指|梦幻西游:10张玲珑图全程无经验,宝石还只出了一个!
- 挂机|玩游戏赚钱,个人总结日进200经验,有电脑就行!
- 梦幻西游|梦幻西游:文哥全服第1经验号过户,浩文预定了1800亿经验女号!