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

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

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

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

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

相关推荐
辞旧 lekkk25 分钟前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
吴声子夜歌35 分钟前
Redis 3.x——集群节点通信
redis·缓存·集群
ywl4708120873 小时前
redis持久化
redis
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第179题】【07_Redis篇】第15题:什么是 Redlock 算法?
java·redis·分布式锁·高可用·redlock
吴声子夜歌9 小时前
Redis 3.x——集群运维
运维·数据库·redis
数行拙笔10 小时前
Redis---list类型
数据库·redis·缓存
xiaofeichaichai12 小时前
NestJS 实战:JWT 登录认证、Token 刷新与安全退出
redis·nestjs·jwt·twitter
Icoolkj12 小时前
ICOOLKJ 前后端分离项目完整部署文档(MySQL8.4+Redis+JDK21+Nginx+HTTPS+自动同步演示库)
redis·nginx·https
数行拙笔13 小时前
Redis---set类型
数据库·redis·缓存
William Dawson13 小时前
【国产化改造实战|Spring Boot对接华为云MRS Redis Kerberos认证终极踩坑指南】
spring boot·redis·华为云