布隆过滤器的原理以及java 简单实现
布隆过滤器是1970年由布隆提出的。布隆过滤器可以用于检索一个元素是否在一个集合中。布隆过滤器的原理是,当一个元素被加入集合时,通过K个Hash函数将这个元素映射成一个位数组中的K个点,把它们置为1。这就是布隆过滤器的基本思想。答案是不可以,只能是 “baidu” 这个值可能存在。但是计数删除需要存储一个数值,而不是原先的 bit 位,会增大占用的内存大小。可以使用Guava提供的相关类库即可。判断一个元素是否在集合中运行结果如下:自定义错误率运行结果如下:对于缓存宕机的场景,使用白名单或者布隆过滤器都有可能会造成一定程度的误判。当然,缓存宕机时使用白名单/布隆过滤器作为应急的方式,这种情况应该也是可以忍受的。
用户评论