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

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

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

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

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

相关推荐
风象南1 小时前
Redis中5种BitMap应用场景及实现
redis·后端
餘yuqn6 小时前
redis 中 zset 的数据存储方式
redis
路在脚下@10 小时前
Redis实现分布式定时任务
java·redis
hnsqls10 小时前
Redis 常问知识
数据库·redis·缓存
神奇小永哥11 小时前
redis之缓存雪崩
数据库·redis·缓存
纪元A梦13 小时前
Redis最佳实践——秒杀系统设计详解
数据库·redis·缓存
图南随笔13 小时前
Spring Boot(二十一):RedisTemplate的String和Hash类型操作
java·spring boot·redis·后端·缓存
XY.散人14 小时前
初识Redis · list和hash类型
数据库·redis·哈希算法
洛神灬殇17 小时前
【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(文件事件驱动执行控制)
redis·后端·架构
小黑蛋学java17 小时前
Redis 版本变更的变化
redis