布隆过滤器理解总结

目录

插入查询​编辑

删除 ​编辑

 时间复杂度

缺点

代码实现

布隆过滤器防止redis缓存穿透

布隆过滤器是一种数据结构,利用极小的内存,可以判断大量的数据“一定不存在或者可能存在”。

对于缓存击穿,我们可以将查询的数据条件都哈希到一个足够大的布隆过滤器中,用户发送的请求会先被布隆过滤器拦截,一定不存在的数据就直接拦截返回了,从而避免下一步对数据库的压力。

插入查询

删除 

 时间复杂度

O(K), K为哈希函数的个数,每个哈希函数是O(1).

一维数组中存储二进制数据(0 1),通过哈希->数组下标->插入、查询数据(1)。

缺点

误删

误判

代码实现

误判率越小,计算时间越长

不同的哈希函数对应的哈希算法不同,误判率越低,所需的哈希函数越多,所需的一维数组内存大小也越大。

布隆过滤器防止redis缓存穿透

前端请求查询一个数据,但是redis中没有这个数据,那这个请求就会穿过redis,直接去数据库中查询,这样就会导致前端请求直接打到数据库上,如果数据库承受不了这么大的请求,就会挂掉。

redis没有拦截住这个请求,

redis只能缓存一部分数据,数据不在redis有可能在数据库,布隆过滤器保存了全部的数据,数据不在布隆过滤器就大概率不在数据库。这样当有大量不在数据库里的查询时就不用再查数据库了,没有布隆过滤器的话就是先查redis再查数据库,但是这些数据都不在redis里,所以每次都要查数据库,这种情况相当于缓存失效了,所以叫缓存穿透。

布隆过滤器:可以保证查询不在的数据(return false),就一定不在!查询在的数据(return false),不一定在!

redis缓存穿透、缓存击穿、缓存雪崩

单机redis

redis集群

 单机redis多实例集群

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值