美文网首页
布隆过滤器之 Guava 实现

布隆过滤器之 Guava 实现

作者: happyJared | 来源:发表于2019-12-05 07:46 被阅读0次

    首先,在项目中引入 Guava 的依赖:

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>28.0-jre</version>
            </dependency>
    

    先创建了最多可存放 500 个整数的布隆过滤器,并且可以容忍误判的概率为1%:

            // 创建布隆过滤器对象
            BloomFilter<Integer> filter = BloomFilter.create(Funnels.integerFunnel(), 500, 0.01);
            // 判断指定元素是否存在
            System.out.println(filter.mightContain(10));
            System.out.println(filter.mightContain(20));
            // 将元素添加进布隆过滤器
            filter.put(10);
            filter.put(20);
           // 再判断指定元素是否存在
            System.out.println(filter.mightContain(10));
            System.out.println(filter.mightContain(20));
    

    在以上示例中,当上述方法返回 true 时,可以99%确定该元素在过滤器中;当过滤器返回 false 时,可以100%确定该元素不存在于过滤器中。

    Guava 提供的布隆过滤器,不好的缺陷就是只能单机使用。为了解决这个问题,后面可以考虑使用 Redis 提供的布隆过滤器。

    相关文章

      网友评论

          本文标题:布隆过滤器之 Guava 实现

          本文链接:https://www.haomeiwen.com/subject/typrgctx.html