Java Bloom过滤器开源项目

这是一个Bloom算法过滤器的Java开源项目,Bloom算法能够判断某个key存在于缓存中的可能性,对于非常大量的分布式缓存系统,比如Cassandra缓存,查询一个key是否存在缓存中不能将所有主机都查一遍,使用Bloom算法就能大概知道这个key是否存在缓存中。

下载jar包放入classpath

创建一个bloom过滤器,参数两个:条目数和误差容忍度:
BloomFilter filter = new BloomFilter(1000, 0.01);

通过下面方式加入新条目:
int ip = addr.getIpAddress();
filter.add(ip);

然后你就可以检查这个条目是否已经加入:
if (filter.contains(ip)) {
throw new Exception("IP is blacklisted");
}

krisives/jbloomer: A Bloom Filter for Java