布隆过滤器

Bloom Filter布隆过滤器

是一种 概率型数据结构 ,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。

实现原理

创建一个bit数组,若干个hash函数。根据给定的值,使用多个不同的哈希函数生成多个哈希值,并对每个生成的哈希值指向的 bit 位置 置为 1。

bit数组大小,hash函数个数选取 参考 公式

优点

存储及查询速度快,占用空间小。

缺点

不支持删除,有一定概率误判(查询结果不一定准确)。

使用场景

可用于存储数据的全量集合,进行判断指定数据在全量集合中是否不存在可能存在

Counting Bloom Filter

将标准 Bloom Filter 位数组的每一位扩展为一个小的计数器(Counter),在插入元素时给对应的 k (k 为哈希函数个数)个 Counter 的值分别加 1,删除元素时给对应的 k 个 Counter 的值分别减 1。Counting Bloom Filter 通过多占用几倍的存储空间的代价, 给 Bloom Filter 增加了删除操作。

参考

https://www.jianshu.com/p/2104d11ee0a2

https://cloud.tencent.com/developer/article/1136056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值