布隆过滤器的最小可能概率是多少?

时间:2018-03-10 23:01:03

标签: redis bloom-filter

我有一个用例,我需要尽可能高效地检查150亿条记录中的哈希肯定不存在(和计数)。这些检查以每秒数千次的速度进行。 我真的很喜欢Redis bloom filter实现,我正在测试我的bloom过滤器。我正在创建15个过滤器,每个过滤器包含1b条记录:

127.0.0.1:6379> bf.reserve articles15 0.1 1000000000

据我了解布隆过滤器,如果bf.exists的结果为0,则可以确定过滤器中不存在该元素。这就是我所关心的。我不关心漏报,因为我永远不会检查1

在上面的命令中,0.1是Redis调用它的错误率,a.k.a。概率。

实际问题:我可以安全设置的最高数字是什么,以获得最小可能的布隆过滤器大小? Redis允许我设置偶数1,但我认为这不起作用。我可以设置0.9吗?

1 个答案:

答案 0 :(得分:2)

理论上你可以,但这没有任何意义。如果你不关心漏报,只要假设一切都是0并且假阴性率为100%:)

所以你在某种程度上关心假阴性,或者你不会使用布隆过滤器,对吧?现在问问自己,你真正需要什么。