教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

什么是缓存穿透?缓存穿透解决方案

更新时间:2023年07月25日11时41分 来源:传智教育 浏览次数:

好口碑IT培训

缓存穿透是指查询一个缓存中和数据库中都不存在的数据,导致每次查询这条数据都会透过缓存,直接查库,最后返回空。.Redis中大面积出现未命中,出现非正常URL访问。解决缓存穿透问题可采用以下几个方案:

1.缓存null

​ 对查询结果为null的数据进行缓存(长期使用,定期清理),设定短时限,例如30-60秒,最高5分钟

2.白名单策略

​ 提前预热各种分类数据id对应的bitmaps,id作为bitmaps的offset,相当于设置了数据白名单。当加载正常数据时放行,加载异常数据时直接拦截(效率偏低)

​ 使用布隆过滤器(有关布隆过滤器的命中问题对当前状况可以忽略)

2.实施监控

​ 实时监控redis命中率(业务正常范围时,通常会有一个波动值)与null数据的占比

​ 非活动时段波动:通常检测3-5倍,超过5倍纳入重点排查对象

​ 活动时段波动:通常检测10-50倍,超过50倍纳入重点排查对象

​ 根据倍数不同,启动不同的排查流程。然后使用黑名单进行防控(运营)

总的来说:缓存击穿是指访问了不存在的数据,跳过了合法数据的redis数据缓存阶段,每次访问数据库,导致对数据库服务器造成压力。通常此类数据的出现量是一个较低的值,当出现此类情况以毒攻毒,并及时报警。应对策略应该在临时预案防范方面多做文章。

无论是黑名单还是白名单,都是对整体系统的压力,警报解除后尽快移除。

0 分享到:
和我们在线交谈!