【笔记】布隆过滤器

前言

通过Redisson实现布隆过滤器

引入依赖

pom.xml
1
2
3
4
5
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-all</artifactId>
<version>3.16.0</version>
</dependency>

创建布隆过滤器

redis://127.0.0.1:6379:指定Redis地址
bloomFilter:指定在Redis中作为布隆过滤器的键名
1000000L:指定布隆过滤器的大小
0.01:指定误判率为1%

1
2
3
4
5
Config config = new Config();
config.useSingleServer().setAddress("redis://127.0.0.1:6379");
RedissonClient redisson = Redisson.create(config);
RBloomFilter<String> bloomFilter = redisson.getBloomFilter("bloomFilter");
bloomFilter.tryInit(1000000L, 0.01);

添加元素

  • 在项目启动时应该将数据库中的所有数据添加到布隆过滤器作为初始数据
1
bloomFilter.add("");

删除元素

  • 需要重新初始化布隆过滤器

判断元素是否存在

  • 如果返回true表示1%的可能不存在
  • 如果返回false表示一定不存在
1
boolean exists = bloomFilter.contains("");

完成

参考文献

哔哩哔哩——IT老齐