缓存穿透、缓存雪崩、缓存击穿

2019-04-03  本文已影响0人  zyqcoder
缓存穿透

缓存穿透的意思是查询一个一定不存在的数据,因为缓存中没有这个信息,则会去数据库查询,从系统层面来看就像穿透了缓存层,直接到达db进行查询,从而称为缓存穿透。失去了缓存层的保护,这种查询一定不存在的数据对系统来说是很危险的,如果有人恶意通过这种方式不停的请求数据库,会对数据库造成压力甚至会导致系统崩溃。

解决方案:

缓存雪崩

在普通的缓存系统中,一般例如redis、memcache等中,我们会给缓存设置一个失效时间,如果这些缓存的失效时间集中在相同时刻,那么在同一时间失效时,所有的系统请求都会发送到数据库层,db可能无法承受如此大的压力导致系统崩溃。

解决方案:

缓存击穿

缓存击穿其实是缓存雪崩的一个特例,在查询数据时,缓存中没有,但是数据库中有,此时大量请求全部发到数据库中,给数据库带来极大的压力。击穿与雪崩之间的区别在于击穿是对于某一特定的热点数据来说,而雪崩是全部数据。

参考:https://www.cnblogs.com/zhangww/p/9942390.html

上一篇下一篇

猜你喜欢

热点阅读