Guava BloomFilter如何每天过期一次

时间:2014-03-03 07:52:48

标签: guava bloom-filter

我正在使用guava bloom过滤器删除服务中的重复消息以接收日志。 Blooming过滤器有没有像guava缓存那样过期的方法呢?

4 个答案:

答案 0 :(得分:4)

不,BloomFilter没有任何删除功能。这也是不可能的,因为BloomFilter会跟踪可能可能在一组对象中的内容。

BloomFilter中删除一个条目的条目会导致其他条目的误报。 BloomFilter必须100%准确地确定集合中的内容。

答案 1 :(得分:2)

你甚至无法从Guava的BloomFilter中删除,更不用说自动过期了。

答案 2 :(得分:2)

如果您需要删除功能,请考虑使用 Counting Bloom Filter

答案 3 :(得分:1)

正如Tavian Barnes所建议的,这里的一个解决方案可能是创建一个包装BloomFilter的类,并且(每天一次,或者经常你想要的)以原子方式替换BloomFilter一个新的{{1}}并重新填充它。