2024-04-06 22:43阅读: 11评论: 0推荐: 0

【知识点】Redis-缓存-缓存穿透

缓存穿透:查询一个不存在的数据,Mysql查询不到也没有写入缓存,导致每次请求都会查询数据库。(比如恶意请求)

解决方案:

  1. 缓存空数据:返回数据为空时仍然缓存(但是需要加过期时间)。

优点:简单
缺点:消耗内存,可能存在数据不一致情况。

  1. 布隆过滤器

布隆过滤器使用Bitmap(位图)来记载一个数据是否在一个集合中,一般使用多个hash函数对数据ID进行hash计算,然后将计算结果保存在位图中,该ID的数据存在时,hash计算得到的位即为1。

项目启动后在redis预热时,同样需要预热布隆过滤器。

优点:内存占用少,没有多余的Key
缺点:实现复杂,存在误判情况(即数据库没有,但是布隆过滤器判断有)

本文作者:编程随写

本文链接:https://www.cnblogs.com/code-blog/p/18118130

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   code-blog  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起