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

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

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

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

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

相关推荐
青柠代码录5 小时前
【Redis】数据类型:String
数据库·redis·缓存
IronMurphy7 小时前
Redis拷打第七讲(最终章)
数据库·redis·php
AveryZxj8 小时前
Redis中List
redis
Devin~Y8 小时前
互联网大厂 Java 面试实录:JVM、Spring Boot、MyBatis、Redis、Kafka、Spring AI、K8s 全链路追问小Y
java·jvm·spring boot·redis·kafka·mybatis·spring security
難釋懷8 小时前
Redis内存回收-内存淘汰策略
前端·数据库·redis
bqq198610269 小时前
Redis持久化
数据结构·数据库·redis·缓存
phltxy9 小时前
Redis集群:分布式高可用存储方案
数据库·redis·分布式
csjane10799 小时前
Redis 配置文件
数据库·redis·缓存
星梦清河10 小时前
微服务-Redis高级
数据库·redis·缓存
zhangchengjava10 小时前
Redis 连接问题完整解决报告
数据库·redis·缓存