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

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

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

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

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

相关推荐
童话ing3 小时前
Redis常见问题及其处理策略
数据库·redis·缓存
灵感蛙4 小时前
《苍穹外卖》项目日记_Day7
java·spring boot·redis
AAA修煤气灶刘哥4 小时前
缓存世界的三座大山:穿透、击穿、雪崩,今天就把它们铲平!
redis·分布式·后端
奔跑吧邓邓子5 小时前
【Java实战㊱】Spring Boot邂逅Redis:缓存加速的奇妙之旅
java·spring boot·redis·缓存·实战
失散135 小时前
分布式专题——4 大厂生产级Redis高并发分布式锁实战
java·redis·分布式·缓存·架构
AAA修煤气灶刘哥6 小时前
别懵!从单机锁到 Redisson,分布式锁的坑我全帮你填了
java·redis·spring cloud
jc06206 小时前
4.1-中间件之Redis
数据库·redis·中间件
失散137 小时前
分布式专题——6 Redis缓存设计与性能优化
java·redis·分布式·缓存·架构
不爱洗脚的小滕8 小时前
【Redis】Scan 命令使用教程:高效遍历海量数据
数据库·redis·bootstrap
瑜伽娃娃9 小时前
基于Redis设计一个高可用的缓存
数据库·redis·缓存