学习笔记之布隆过滤器
布隆过滤器
布隆过滤器是一种概率性数据结构,用来判断某样东西一定不存在或者可能存在
@PostConstruct //程序启动时加载此方法
google布隆过滤器
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.2-jre</version>
</dependency>
private BloomFilter<?> bf;
//创建布隆过滤器默认误码率3%
bf.put(?);
bf.mightContain(?);
优点:效率高,占用内存小
缺点:基于内存的一种布隆过滤器,在程序启动时加载大量数据时 初始化时的占用内存特别大,大量数据要放入布隆过滤器,过程特别慢,使用jvm内存,在用户量暴增的情况下,所占用的内存会非常大,服务会因此崩溃
redis布隆过滤器
文档:
https://oss.redislabs.com/redisbloom/
优点:分布式,动态扩容
缺点:需要网络io,性能比基于内存的过滤器低

浙公网安备 33010602011771号