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 布谷鸟过滤器
2334

被折叠的 条评论
为什么被折叠?



