redis如何解决缓存雪崩,缓存穿透,缓存击穿
2020-02-19 本文已影响0人
迷糊银儿
缓存雪崩
在某个时间段设置了过期时间的key都一起失效了,那么db肯定扛不住那么大的并发量,可能会崩溃;
所以我们在设置一些热点key的时候,要尽量设置不同的过期时间,以避免在高并发的情况下缓存雪崩问题
缓存穿透
从字面上理解就是因为每次做查询请求的时候无法从缓存中查询,从而直接将请请求落入DB,刚好db中也没这条数据,那么返回的就是null,就不会放入缓存中,周而复始直到db炸裂。
这种方案简单粗暴的解决方式就是当db中查询为null的时候给缓存设置过期时间 的默认值,从而解决掉这种查询直接到达db的频率
缓存击穿
某个热点key突然过期了,那么必然会导致,大量的请求入db那么db就会扛不住压力,凉凉。
解决方案设置锁(避免大家同时访问该db),如果是分布式系统就设置分布式锁。