栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

缓存穿透、缓存击穿、缓存雪崩的理解以及解决策略

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

缓存穿透、缓存击穿、缓存雪崩的理解以及解决策略

缓存击穿,穿透以及缓存雪崩的概念

缓存穿透
在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。
也就是说:缓存穿透是指,请求的是缓存和数据库中都没有的数据!
对于缓存穿透问题,有一个很简单的解决方案,就是缓存NULL值~从缓存取不到的数据,在数据库中也没有取到,直接返回空值。

缓存击穿
在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。
也就是说:缓存击穿是指,请求的是缓存没有,而数据库中有的数据!
记住,解决击穿的最简单的方法,只有一个,就是限流!例如其他文章提到的布隆过滤器,布谷过滤器等,不过是限流方式之一而已!

缓存雪崩
在高并发下,大量的缓存key在同一时间失效,导致大量的请求落到数据库上,如活动系统里面同时进行着非常多的活动,但是在某个时间点所有的活动缓存全部过期。
那么针对该问题,最简单的解决方法就是,过期时间加随机值!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842507.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号