Java中布隆过滤器的使用示例分享
布隆过滤器的使用实现思路
1.引入相关jar包 2.使用redis的Bitmap存储数据 3.检测数据是否存在例:Java中使用布隆过滤器的示例
引入依赖包
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.11.1</version>
</dependency>
/**
* @author Java265.com
*/
@Test
public void test5() {
Config config = new Config();
config.useSingleServer().setAddress("redis://192.168.8.8:6379");
RedissonClient cient = Redisson.create(config);
RBloomFilter<String> bloomFilter = cient.getBloomFilter("test5-bloom-filter");
// 初始化布隆过滤器,数组长度100W,误判率 1%
bloomFilter.tryInit(1000000L, 0.01);
// 添加数据
bloomFilter.add("猫猫");
// 判断是否存在
System.out.println(bloomFilter.contains("java我最爱的技术"));
System.out.println(bloomFilter.contains("猫猫"));
}
//运行以上代码,将输出以下信息
false // 肯定不存在
true // 可能存在,有1%的误判率
注意事项:
误判率设置过小
会产生更多次的 Hash 操作
降低系统的性能
我们的建议值是 1%
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


