我有一个运行多个perl工作进程的系统,所有这些进程都需要查找bloom filter。如果我使用标准bloom filter perl模块( Bloom::Filter或其他),每个子进程都需要添加到bloomfilter中。有没有一种方法可以使用在多个进程之间共享的bloomfilter
我甚至需要将数据持久化到磁盘上,因为每次重新启动系统时,我都可以重用bloomfilter数据
发布于 2016-11-01 00:30:54
一种常见的方法是将布隆过滤器存储在共享数据存储中。支持这种工作负载的一个很好的系统是Redis。有针对Ruby和Java的开源实现。
如果你只需要一个简单的布隆过滤器,你可以用几行Redis驱动自己实现一个(取自one of my presentations):


简而言之,:用编写上面的两个方法,您就拥有了一个功能齐全的布隆过滤器。要提高性能,请避免使用pipelining和计算optimal number of hash functions为每个SETBIT和GETBIT进行往返。
基于Java的实现实现了每秒大约250K插入和包含调用的吞吐量。
https://stackoverflow.com/questions/35056790
复制相似问题