Bloom Filter 布隆过滤器
来源:互联网 发布:java退格符处理 编辑:程序博客网 时间:2024/05/16 09:36
布隆过滤器在很多场合能发挥很好的效果,比如:网页URL的去重,垃圾邮件的判别,集合重复元素的判别,查询加速(比如基于key-value的存储系统)等,下面举几个例子:
- 有两个URL集合A,B,每个集合中大约有1亿个URL,每个URL占64字节,有1G的内存,如何找出两个集合中重复的URL。
很显然,直接利用Hash表会超出内存限制的范围。这里给出两种思路:
第一种:如果不允许一定的错误率的话,只有用分治的思想去解决,将A,B两个集合中的URL分别存到若干个文件中{f1,f2...fk}和{g1,g2....gk}中,然后取f1和g1的内容读入内存,将f1的内容存储到hash_map当中,然后再取g1中的url,若有相同的url,则写入到文件中,然后直到g1的内容读取完毕,再取g2...gk。然后再取f2的内容读入内存。。。依次类推,知道找出所有的重复url。
第二种:如果允许一定错误率的话,则可以用布隆过滤器的思想。
- 在进行网页爬虫时,其中有一个很重要的过程是重复URL的判别,如果将所有的url存入到数据库中,当数据库中URL的数
量很多时,在判重时会造成效率低下,此时常见的一种做法就是利用布隆过滤器,还有一种方法是利用berkeley db来存储url,Berkeley db是一种基于key-value存储的非关系数据库引擎,能够大大提高url判重的效率。
布隆过滤器主要运用在过滤恶意网址用的,将所有的恶意网址建立在一个布隆过滤器上,然后对用户的访问的网址进行检测,如果在恶意网址中那么就通知用户。这样的话,我们还可以对一些常出现判断错误的网址设定一个白名单,然后对出现判断存在的网址再和白名单中的网址进行匹配,如果在白名单中,那么就放行。当然这个白名单不能太大,也不会太大,布隆过滤器错误的概率是很小的。
1 0
- 布隆过滤器 bloom filter
- Bloom filter -- 布隆过滤器
- 布隆过滤器Bloom Filter
- 布隆过滤器 bloom filter
- 布隆过滤器-Bloom Filter
- bloom filter(布隆过滤器)
- Bloom Filter 布隆过滤器
- 布隆过滤器(Bloom Filter)
- Bloom Filter 布隆过滤器
- 布隆过滤器bloom filter
- Bloom Filter 布隆过滤器
- 布隆过滤器(bloom filter)
- Bloom Filter 布隆过滤器
- Bloom Filter布隆过滤器
- 布隆过滤器 Bloom filter
- 【bloom filter】布隆过滤器 (Bloom Filter) 详解
- 布隆过滤器(Bloom Filter)
- 布隆过滤器(Bloom Filter)
- android下载和工具
- MVC4验证 用户登录特性 实现方法
- StringUtils
- java代码优化编程
- 转载:中国互联网金融发展峰会:爱加密志做移动金融“卫道夫”
- Bloom Filter 布隆过滤器
- Softmax回归模型
- TCMalloc分析笔记(gperftools-2.4)
- 蛇形表(递归打印)
- 第二章 面向对象的编程风格(调用函数)
- HDU 5204 Rikka with sequence
- ffmpeg添加mpeg ps流的pcm的解码支持
- SQLserver自定义样式主键-函数实现篇
- java 正则表达式