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

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

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

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

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

相关推荐
2501_9411471110 分钟前
云计算的未来趋势:从基础设施到智能化转型
redis
-Xie-6 小时前
Redis(八)——多线程与单线程
java·数据库·redis
qq_2153978978 小时前
docker 安装 redis
redis·docker·容器
l***37099 小时前
redis info 详解
数据库·redis·缓存
Wilson Chen10 小时前
Spring Boot 多级缓存实现与优化:从本地缓存到 Redis
spring boot·redis·缓存
-大头.10 小时前
Redis内存碎片深度解析:从动态整理到核心运维实践
运维·数据库·redis
她说..11 小时前
基于Redis实现的分布式唯一编号生成工具类
java·数据库·redis·分布式·springboot
伯明翰java12 小时前
Redis学习笔记-List列表(2)
redis·笔记·学习
a123560mh12 小时前
国产信创操作系统银河麒麟常见软件适配(MongoDB、 Redis、Nginx、Tomcat)
linux·redis·nginx·mongodb·tomcat·kylin
Elias不吃糖12 小时前
总结我的小项目里现在用到的Redis
c++·redis·学习