这意味着无论我们在那里存储多少元素,空间都是相同的。是的,一个含有 10^6元素的开花过滤器(无用的开花过滤器)将占用与含有 10^20元素的开花过滤器相同的空间,与含有 0元素的开花过滤器占用相同的空间。那么它需要多大的空间呢?这取决于你的决定(但有一个交易: 更多的元素,你有更多的不确定性,你与你的 possible in the set答案。
另一个很酷的事情是它是空间常数。当您将数据保存到一个集合时,您必须实际保存这些数据。因此,如果存储 this long string in the set,则必须至少使用27个字节的空间。但是,对于1% 的错误和 k **的最佳值,每个元素(无论是短 int 还是大量文本)都需要约9.6位(< 2字节)。
Akamai 的网络服务器使用 Bloom 过滤器来防止“一击即中的奇迹”被存储在其磁盘缓存中。一次性命中的奇迹是用户只请求一次的 Web 对象,Akamai 发现这种情况适用于他们近四分之三的缓存基础设施。使用 Bloom 过滤器检测 Web 对象的第二个请求,并且只在第二个请求时缓存该对象,可以防止一次命中的奇迹进入磁盘缓存,大大减少磁盘工作负载并提高磁盘缓存的命中率(取自 Bloom 在 wiki 上的过滤器文章的例子)