什么是Redis缓存雪崩、缓存穿透、缓存击穿?关于这个问题至少有20位以上的粉丝咨询过我。这确实是一道互联网大厂的高频面试题。今天,我给大家来聊一聊。
另外,往期面试题解析中配套的文档我已经准备好,想获得的可以在我的煮叶简介中找到。
好了,首先来说一下,缓存的作用。
1.缓存的作用
一般情况下,1.用户请求到后台,会先从缓存中取数据,如果在缓存中取到数据,就直接返回结果,如果取不到数据就需要查询数据库,从数据库中取数据,从数据库中取到数据后会同步更新到缓存,并返回结果。下一个用户就可以直接从缓存中取值了。那如果在数据库也没有取到,就只能直接返回空结果。所以,缓存主要的作用就是缓解数据的负载压力,提升请求响应效率。
浪漫和悲观并不冲突,我时常消极但又依旧觉得生活很美好,哪怕只是一束光照进了房间,也要认真对待它的到来。
浪漫和悲观并不冲突,我时常消极但又依旧觉得生活很美好,哪怕只是一束光照进了房间,也要认真对待它的到来。
那什么是缓存雪崩、缓存穿透和缓存击穿呢?
2.如何理解
举个例子,就好比是有个畅销商品,比如前段时间比较火的冰墩墩经常卖断货。那如果商品断货呢分为三种情况,第一种情况是门店和厂家都有存货,第二种情况是,门店和厂家都没有存货,第三种情况是,门店无货和厂家存货。
浪漫和悲观并不冲突,我时常消极但又依旧觉得生活很美好,哪怕只是一束光照进了房间,也要认真对待它的到来。
浪漫和悲观并不冲突,我时常消极但又依旧觉得生活很美好,哪怕只是一束光照进了房间,也要认真对待它的到来。
缓存雪崩就是,门店和厂家都有存货,但是卖得实在是太火爆了,排队的人太多导致门店一时间无法承受这么大压力,因此排队的用户就都去找厂家买了,从而导致厂家短时间内也要承受了很大的压力响应不过来。
缓存穿透就是,门店和厂家都没有货了,客户把厂家的电话都打爆了,但还是只能等着。
缓存击穿就是,门店无货了但是厂家还有货,所以,客户就把电话打到厂家,导致厂家的压力瞬间暴增。
如果想了解官方的详解解释和解决方案,请关注我的主页,看下一期视频讲解。
3.总结
大家不要被表面的文字所迷惑,不管是缓存雪崩、缓存穿透还是缓存击穿,都是指缓存失效或者异常,导致访问压力流转到数据库,从而使得数据库负载过高。那么缓存异常的场景还有缓存预热异常、缓存降级异常等等,我总结了一张脑图供大家参考和学习,有需要的小伙伴可以关注我的主页介绍。
浪漫和悲观并不冲突,我时常消极但又依旧觉得生活很美好,哪怕只是一束光照进了房间,也要认真对待它的到来。