redis搭配布隆过滤器避免缓存穿透

redis中如果请求的数据不在缓存中,则会直接访问数据库,可以使用布隆过滤器这一模块来处理缓存穿透的问题。

布隆过滤器由二进制位数组和哈希函数组成,向缓存存数据的时候,通过哈希函数计算哈希值,并且在数组中的哈希值位置存入一个二进制值,表示该值存在缓存中,同一个位置可能会有多个值,所以可能会出现判错的情况。

在读取数据的时候,通过哈希函数确定哈希值,在二进制数组中判断是否有该值,如果有则表示数据存在缓存中,直接在缓存中获取;如果没有则通过数据库获取数据。

因为不同的数据通过哈希算法计算的哈希值有可能相同,所以通过哈希在数组中值获取值时,并不一定就是需要的键值;而如果通过哈希值在数组中确定不存在时,数据就一定不存在缓存中。

相关推荐
喜欢的名字被抢了几秒前
01-Redis 基础篇:从定位到 Key 管理
redis·教程
Anastasiozzzz32 分钟前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
溪语流沙2 小时前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
努力努力再努力wz2 小时前
【Redis进阶系列】:从主从复制到 Sentinel,一文建立故障检测、Leader 选举与 Failover 的完整心智模型
数据库·redis·缓存
Wang's Blog3 小时前
Java 项目实战: 外卖平台-后台系统登录功能开发
java·服务器·redis
Wang's Blog4 小时前
Java 项目实战: 外卖平台-后台退出功能与首页iframe架构
java·服务器·redis
海天一色y4 小时前
生产级医疗AI Agent:Multi-Agent RAG架构解析
redis·milvus·multi-agent
Wang's Blog4 小时前
Java 项目实战: 外卖平台-软件开发流程与项目整体介绍
java·服务器·redis
Wang's Blog12 小时前
Java 接入Redis: 服务启动停止与后台运行配置
java·服务器·redis
程序员JerrySUN16 小时前
Jetson Edge AI 实战01:Nano、Xavier、Orin 怎么选?Jetson 硬件选型详解【视频讲解】
java·数据库·redis·安全·mybatis