zoukankan      html  css  js  c++  java
  • Bloomfilter 的应用场景 黄刚的专栏 博客频道 CSDN.NET

    Bloomfilter 的应用场景 - 黄刚的专栏 - 博客频道 - CSDN.NET

    Bloomfilter 的应用场景


    分类:
    Structure&Arithmetic


    233人阅读
    评论(0)
    收藏
    举报

           
    Bloomfilter
    一般用于检测某元素是否在集合中存在,它的目标是解决在大数据量情况的元素判定。它的优点是它提供的数据结构具有非常高的时间查询和空间存储效率,缺点是可能造成误判,就是说,它判定某元素在集合中,但是其实有可能他不在集合里面,当然,反过来说,如果他判定元素不在集合里面,那么元素肯定是不在集合里面的。因此它的应用场景实用于能够容忍小概率事件的误判产生的情况,简而言之,以正确率换空间和时间。

           目前的应用场景比较多,整理如下:

    • 黑名单

    最典型的一个应用就是黑名单功能,对用户名称或者IP或者Email进行过滤,每次检查时用key进行hash后,如果不在黑名单内的,肯定可以通行,如果在的则不允许通过,误判情况增加一个排除名单来进行排除。

        误判情况:将正常用户判定为黑名单用户

    • 爬虫重复URL检测

        在爬取网站URL时,要检测这条URL是否已经访问过。

      误判情况:没有访问过的误判为访问过

    • 字典纠错

         检查单词拼写是否正确

      误判情况:错误的单词误判为正确。

    • 磁盘文件检测

          将磁盘中或者数据库中数据key存入该结构中,检测要访问的数据是否在磁盘或数据库中,然后再发起访问,避免空查询造成磁盘或数据库压力。

      误判情况:不存在该数据却误判为有该数据。

    •    CDN(squid)代理缓存技术

      先查找本地有无cache,如果没有则到其他兄弟 cache服务器上去查找。为了避免无谓的查询,在每个cache服务器上保存其兄弟服务器的缓存关键字,以bloomfilter方式存储,再去其他cache服务器查找之前,先检查该结构是否有url,如果有存在url,再去对应服务器查找。

      误判情况: 对应服务器不存在该URL的缓存。

  • 相关阅读:
    遇到的StageFright问题 一 音视频因ALSA不同步
    stagefright
    细数开源历史上的九个重大事件
    AOP concepts (from spring.net document)
    javascript ECMA262概述
    Spring.net配置相关
    NUnit2.5 测试类几个方法
    Bill Gates 哈佛大学演讲 Never Surrend to Complexity
    iis6.0支持GZIP的详细设置方法
    Hessian是一个轻量级的remoting onhttp工具
  • 原文地址:https://www.cnblogs.com/lexus/p/2409303.html
Copyright © 2011-2022 走看看