作者处于学习阶段,刚刚完成redis的学习,作为学生,我会用更通俗的说法,来叙述自己对redis的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解redis。
1.何为缓存击穿?
当缓存中某个数据到达了过期时间,并且该Key值成为了这段时间非常热门的话题。当大量的请求高并发的查询该key值时,都会查询不到该数据。都会查询到数据库当中,原本数据库很清闲,突然的压力和高并发,就会导致数据库的崩溃,但是redis缓存没有出现异常。
举例:在EDG夺冠时,就会有大量的词条。如EDG夺冠,如果此时缓存过期,就会导致无法查询到数据,反而去大量访问数据库,导致数据库崩坏。
2.缓存击穿图解
3.缓存击穿的解决方案
①预先设置热门数据
在redis高访问前,预判到会出现的热门数据,增加其过期时长。如提前观看LOL全球总感觉赛、偷偷跟踪明星发现其八卦事件、提前为自己服务器的数据库算一卦,当然上述是开玩笑所说,只是给大家的学习增加乐趣。
②实时监测
检测热门的数据,将其过期时间设长。
③使用锁
使用锁的话,需要图片解释才能够解释全面。该图片为高并发情况下排它锁的使用方式。



