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

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

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

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

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

相关推荐
小小工匠27 分钟前
性能优化 - 案例篇:数据一致性
redis·性能优化·数据一致性
多多*14 小时前
蓝桥杯国赛训练 day1
java·开发语言·数据库·redis·缓存·职场和发展·蓝桥杯
weixin_3077791314 小时前
使用Redis作为缓存优化ElasticSearch读写性能
redis·分布式·elasticsearch·缓存·架构
清风~徐~来17 小时前
【Redis】set 类型
java·数据库·redis
书山有路勤为径~18 小时前
Docker 安装 Redis 容器
redis·docker·eureka
小小星球之旅18 小时前
redis缓存常见问题
数据库·redis·学习·缓存
bing_15818 小时前
Redis 缓存粒度如何控制?缓存整个对象还是部分字段?
redis·缓存
纪元A梦18 小时前
Redis最佳实践——性能优化技巧之缓存预热与淘汰策略
redis·缓存·性能优化
未来并未来18 小时前
Redis 缓存问题及其解决方案
java·redis·缓存
码农开荒路21 小时前
Redis线程模型
数据库·redis·缓存