当前位置:   article > 正文

学习笔记 | 大数据和空间限制 | 布隆过滤器 BloomFilter_布隆过滤器 一千万数据占用内存多少

布隆过滤器 一千万数据占用内存多少

布隆过滤器

  • BloomFilter 的目的是检测一个元素是否存在于一个集合内。
  • 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构,特点是高效地插入和查询。根据查询结果可以用来告诉你 某样东西一定不存在或者可能存在 这句话是该算法的核心。
  • 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的,同时布隆过滤器还有一个缺陷就是数据只能插入不能删除
【题目】和【要求】

不安全网页的黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B。现在想要实现一个网页过滤系统,利用该系统可以根据网页的URL判断该网页是否在黑名单上,请设计该系统。

  1. 该系统允许有万分之一以下的判断失误率。
  2. 使用的额外空间不要超过30GB
首先介绍哈希函数(散列函数)的概念
  • 哈希函数的输入域可以是非常大的范围,比如,任意一个字符串,但是输出域是固定的范围,假设为S,并具有如下性质:
  1. 典型的哈希函数都有无限的输入值域。
  2. 当给哈希函数传入相同的输入值时,返回值一样。
  3. 当给哈希函数传入不同的输入值时,返回值可能一样,也可能不一样,这是当然的。因为输出域统一是S,所以会有不同的输入值对应在S中的一个元素上。
  4. 最重要的性质是很多不同的输入值所得到的返回值会均匀地分布在S上。
  • 第1~3点性质是哈希函数的基础。
  • 第4点性质是评价一个哈希函数优劣的关键。
  • 不同的输入值所得到的
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/569801
推荐阅读
相关标签
  

闽ICP备14008679号