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

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

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

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

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

相关推荐
LB21125 小时前
Redis黑马点评 day01
数据库·redis·缓存
爬山算法12 小时前
Redis(78) 如何设置Redis的缓存失效策略?
数据库·redis·缓存
DemonAvenger13 小时前
深入Redis String:从基础到实战,10年经验的后端工程师带你解锁最佳实践
数据库·redis·性能优化
shuair13 小时前
redis大key问题
数据库·redis·缓存
CS_GUIDER19 小时前
踩坑记录:Redis 连接报错 “Failed to get reply: connection reset“ 之端口冲突问题
redis
aristo_boyunv19 小时前
Redis发布订阅【充当消息中间件】
数据库·redis·缓存
艾德金的溪1 天前
redis-7.4.6部署安装
前端·数据库·redis·缓存
东城绝神1 天前
《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 7.4.5容器版分片集群》
linux·运维·redis·架构·分片集群
我的offer在哪里1 天前
Redis
数据库·redis·缓存
阿维的博客日记1 天前
从夯到拉的Redis和MySQL双写一致性解决方案排名
redis·分布式·mysql