本文章主要是记录作者学习 极客时间 分布式缓存 课程中一些笔记,不喜勿扰
缓存穿透:
查询一个一定不存在的数据, 缓存不命中,这时候就会去数据库中查询,数据库中也没有这条数据,就无法更新缓存,这样每次查询就会去数据库。
请求流程图:

解决方案一:
value 设置为 字符串 null
第一次查询不存在就更新缓存数据 value 为 "null" , 前端收到 “null” 认为是空数据
后面可以定时轮询查询这个“null”的数据在数据库是否存在, 存在就更新缓存数据


当用户新增数据 时流程图:


当然也可以增加一些其他措施
1、添加 ip 黑名单和白名单
事前:
2、添加校验前置, 对于一些业务参数进行校验, 例如:校验规则需要根据业务定, 效率要高,业务id 必须满足 规定长度, 但是要注意校验的时间复杂度, 不能太耗时
事后:
3、过载保护, 防止大量请求过来, 毕竟带宽是有限的, 防止服务宕机
解决方案二:
布隆过滤器:

优点:他的空间效率和查询时间
缺点:有一定的误识别率, 不一定完全准确,
参考于极客时间 分布式缓存高手课