redis 布隆过滤器使用示例(guava)
******************
示例
***************
config 层
DataConfig
@Configuration
public class DataConfig {
@Bean
public BloomFilter<String> initBloomFilter(){
return BloomFilter.create(Funnels.stringFunnel(Charset.defaultCharset()),100);
}
}
***************
service 层
BloomFilterService
@Service
public class BloomFilterService {
@Resource
private BloomFilter<String> bloomFilter;
public void add(String s){
bloomFilter.put(s);
}
public boolean contain(String s){
return bloomFilter.mightContain(s);
}
}
***************
controller 层
HelloController
@RestController
public class HelloController {
@Resource
private BloomFilterService bloomFilterService;
@RequestMapping("/add")
public String add(){
for (int i=0;i<100;i++){
bloomFilterService.add("瓜田李下"+i);
}
return "success";
}
@RequestMapping("/get")
public String contain(@RequestParam("value") String value){
if (bloomFilterService.contain(value)){
System.out.println("查找的值存在");
return value+"存在";
}else{
System.out.println("查找的值不存在");
return value+"不存在";
}
}
}
******************
控制台输出
查找的值:瓜田李下 不存在
查找的值:瓜田李下2 存在
查找的值:瓜田李下3 存在
查找的值:瓜田李下4 存在
查找的值:瓜田李下5 存在
查找的值:瓜田李下6 存在
查找的值:海贼王 不存在
查找的值:海贼王8 不存在
查找的值:瓜田李下8 存在