布隆过滤器浅析

1、什么是布隆过滤器

布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数

2、布隆过滤器的优点

2.1 全量存储但是不存储数据本身,适合有保密要求的场景,可以节省空间
2.2 空间复杂度为O(m),不会随着元素增加而增加,占用空间少
2.3 插入和查询时间复杂度都是 O(k), 不会随着元素增加而增加,远超一般算法。

3、布隆过滤器的缺点

3.1 存在误算率,数据越多,误算率越高
3.2 一般情况下无法从过滤器中删除数据
3.3 二进制数组长度和 hash 函数个数确定过程复杂

4、布隆过滤器的时间复杂度和空间复杂度

空间复杂度为O(m)
插入和查询时间复杂度都是 O(k)

5、布隆过滤器的使用场景

5.1 黑名单校验
5.2 海量数据快速去重
5.3 爬虫URL校验
5.4 leveldb/rocksdb快速判断数据是否已经在block中,避免频繁访问磁盘
5.5 解决海量数据缓存穿透问题

6、布隆过滤器的优化实现

6.1 计数布隆过滤器(增加了计数器以支持删除操作,但是需要更多内存空间)
6.2 布谷鸟过滤器

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值