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%
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。