【知识点】Redis-缓存-缓存穿透
缓存穿透:查询一个不存在的数据,Mysql查询不到也没有写入缓存,导致每次请求都会查询数据库。(比如恶意请求)
解决方案:
- 缓存空数据:返回数据为空时仍然缓存(但是需要加过期时间)。
优点:简单
缺点:消耗内存,可能存在数据不一致情况。
- 布隆过滤器
布隆过滤器使用Bitmap(位图)来记载一个数据是否在一个集合中,一般使用多个hash函数对数据ID进行hash计算,然后将计算结果保存在位图中,该ID的数据存在时,hash计算得到的位即为1。
项目启动后在redis预热时,同样需要预热布隆过滤器。
优点:内存占用少,没有多余的Key
缺点:实现复杂,存在误判情况(即数据库没有,但是布隆过滤器判断有)
本文作者:编程随写
本文链接:https://www.cnblogs.com/code-blog/p/18118130
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!