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

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

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

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

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

相关推荐
秦jh_17 分钟前
【Redis】Set和Zset
数据库·redis·缓存
Nyarlathotep011336 分钟前
Redis的数据结构(4):跳表
数据库·redis
Thomas.Sir1 小时前
深入剖析 Redis 经典面试题
redis·分布式·高并发·
xdpcxq10295 小时前
Redis 故障排查 + 跨语言重构场景实测
数据库·redis·重构
`Jay5 小时前
Python Redis连接池&账号管理池
redis·分布式·爬虫·python·学习
零雲6 小时前
java面试:了解Redis的分布式限流算法么?
java·redis·面试
菜鸟程序员专写BUG6 小时前
SpringBoot整合Redis报错全集|连接超时/序列化/缓存穿透/分布式锁踩坑全解决
spring boot·redis·缓存
未秃头的程序猿7 小时前
Redis深度突围:告别get/set,解锁高级玩法与性能优化秘籍
redis·后端
程序员buddha7 小时前
Java面试八股文Redis篇
java·redis·面试
用户851160276127 小时前
Redis 持久化机制有哪些?
redis·面试