缓存穿透,缓存击穿,缓存雪崩(通俗易懂)

缓存穿透

用户不停的访问不存在的数据,缓存中查不到,会去数据库查,对数据库造成压力,可能会崩溃。
解决办法
1.对查询的传的参数进行筛选(key!=负数)。
2.当用户从数据库中查不到数据时,向缓存中传入key=null或0或’’。
3.缓存预热,将数据库中的数据全部放进缓存中,当查不到数据时,也不会访问数据库,当数据发生变化时(增,删,改)再进行重新同步。

缓存击穿

当缓存中的一条数据过期时,在同一时间大量用户访问数据库中的同一条数据。
解决办法
1.设置热点(用户访问量大的)数据永不过期!
2.缓存预热!
缓存穿透和缓存击穿的区别
穿透是访问不存在的数据(一般是恶意的)
击穿是高并发的时候同一时间查询同一条过期数据引起的(一般不是恶意的)

缓存雪崩

是指大量缓存同时失效,造成数据库压力过大甚至down机。
解决办法
1.设置过期时间为随机,避免大量数据同一时间过期。
2.设置热点数据永不过期。
3.缓存预热。
缓存击穿和缓存雪崩的区别
击穿是指某一条数据过期,大量用户同一时间进行访问。
雪崩是指大量数据同一时间过期,给数据库造成压力。

发布了21 篇原创文章 · 获赞 7 · 访问量 444

猜你喜欢

转载自blog.csdn.net/weixin_42998267/article/details/105049775