关于布隆过滤器(Bloom-Filter)的理解
2015-06-27 10:35
204 查看
简介:
Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中,其优点是空间效率和查询时间都远远超过其他算法,其不足在于Bloom-
Filter存在着误判。 因此, Bloom
Filter 不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下, Bloom
Filter 通过极少的错误换取了存储空间的极大节省。
实质:牺牲准确率来换取时间和空间
基本思想:
Bloom-Filter实际上是一个很长的二进制向量和一系列随机映射函数
Bloom-Filter算法的核心思想就是利用多个不同的Hash函数来解决“冲突 ”。计算某元素x是否在一个集合中,首先能想到的方法是将所有的已知元素保存起来构成有一个集合R,然后用元素x跟这个R中的元素一一比较来判断是否存在于集合R中,我们可以采用链表等数据结构来实现,但是,随着集合R中元素的增加,其占用的内存将越来越大。试想,如果有几千万的不同的网页需要下载,所需的内存足以占用掉整个进程的内存地址空间。即使是使用MD5,UUID这个方法将URL转成固定的短小的字符串,内存占用也是相当巨大的。
一般来讲,计算机中的集合是用hash table来存储的,它的好处就是快速、准确,缺点是浪费存储空间。当集合巨大是,存储效率低的问题就显现出来了。但是当我们使用多个hash函数的时候可大大的节省存储空间。
应用:
Bloom-Filter一般用于在大数据量的集合中判定某元素是否存在。例如邮件服务其中的垃圾邮件过滤器。在搜索引擎中,Bloom-Filter常用于网络爬虫的URL过滤。网络爬虫通常有一个URL列表,保存着和将要下载和已经下载的网页的URL,网络蜘蛛下载了一个网页,从网页中提取到亲的URL后,判断该URL是否已存在于列表中,此时,Bloom-Filter是最好的选择
在java实现中需要导入第三方的jar包
Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中,其优点是空间效率和查询时间都远远超过其他算法,其不足在于Bloom-
Filter存在着误判。 因此, Bloom
Filter 不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下, Bloom
Filter 通过极少的错误换取了存储空间的极大节省。
实质:牺牲准确率来换取时间和空间
基本思想:
Bloom-Filter实际上是一个很长的二进制向量和一系列随机映射函数
Bloom-Filter算法的核心思想就是利用多个不同的Hash函数来解决“冲突 ”。计算某元素x是否在一个集合中,首先能想到的方法是将所有的已知元素保存起来构成有一个集合R,然后用元素x跟这个R中的元素一一比较来判断是否存在于集合R中,我们可以采用链表等数据结构来实现,但是,随着集合R中元素的增加,其占用的内存将越来越大。试想,如果有几千万的不同的网页需要下载,所需的内存足以占用掉整个进程的内存地址空间。即使是使用MD5,UUID这个方法将URL转成固定的短小的字符串,内存占用也是相当巨大的。
一般来讲,计算机中的集合是用hash table来存储的,它的好处就是快速、准确,缺点是浪费存储空间。当集合巨大是,存储效率低的问题就显现出来了。但是当我们使用多个hash函数的时候可大大的节省存储空间。
应用:
Bloom-Filter一般用于在大数据量的集合中判定某元素是否存在。例如邮件服务其中的垃圾邮件过滤器。在搜索引擎中,Bloom-Filter常用于网络爬虫的URL过滤。网络爬虫通常有一个URL列表,保存着和将要下载和已经下载的网页的URL,网络蜘蛛下载了一个网页,从网页中提取到亲的URL后,判断该URL是否已存在于列表中,此时,Bloom-Filter是最好的选择
在java实现中需要导入第三方的jar包
相关文章推荐
- 流过滤-Bloom Filter布隆过滤器
- 布隆过滤器 (Bloom Filter) 详解
- 一个简单的布隆过滤器
- 计算机中各种编码的简单理解
- 【数据结构】位图BitMap与布隆过滤器BloomFilter
- 【数据结构】位图BitMap与布隆过滤器BloomFilter
- 布隆过滤器
- 谈谈布隆过滤器(Bloom Filter)
- 实现布隆过滤器
- day25之布隆过滤器的实现和优缺点以及扩展
- day26之模拟实现memcpy和memmove函数
- 【面试题】海量数据面试题分析
- 哈希拓展--布隆过滤器
- 认识布隆过滤器
- 布隆过滤器(Bloom Filter)原理以及应用
- 布隆过滤器
- Coding语言强弱类型的判定
- 位图与布隆过滤器 的说明 介绍
- Bloom Filter原理
- 网页黑名单系统的算法核心