Bloomfilter 的应用场景

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

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

  • 黑名单

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

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

  • 爬虫重复URL检测

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

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

  • 字典纠错

     检查单词拼写是否正确

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

  • 磁盘文件检测

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

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

  •    CDN(squid)代理缓存技术

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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值