布隆过滤器揭秘 让URL黑名单存储从640GB增加到35.88GB!

  • 电脑网络维修
  • 2024-11-15

1.引言

大家好,我是小米,一个热爱分享技术的小同伴。当天我们来聊一聊在实践上班中如何经常使用布隆过滤器(Bloom Filter)来处置大规模URL黑名单的存储和查征询题。

2.疑问背景

假定我们有一个规模到达100亿的黑名单URL汇合,每个URL的长度为64字节。如何高效地存储和查问这个黑名单呢?

3.散列表方法

我们先思考一下惯例的散列表方法。假设经常使用HashMap来存储这些URL:

显然,这样的存储需求是无法行的,由于它对内存的要求太高。

4.布隆过滤器引见

这时刻,我们可以引入布隆过滤器,它是一种高效的概率型数据结构,用于检测一个元素能否属于一个汇合。布隆过滤用具备以下特点:

5.布隆过滤器原理

布隆过滤器由一个很长的二进制位数组和一系列随机映射函数(哈希函数)组成。

拔出元素

当一个元素参与布隆过滤器时,口头以下步骤:

查问元素

查问一个元素能否在布隆过滤器中时,口头以下步骤:

6.计算布隆过滤器参数

为了更好地理解布隆过滤器的存储效率,我们须要计算以下参数:

假定我们准许的误判率为0.01%,我们可以经常使用以下公式来计算m和K:

其中,n是汇合中的元素数量,p是准许的误判率。

详细计算如下:

代入公式:

经过计算,我们得出位数组的长度为287亿bit(约合35.88GB),须要20个哈希函数。这样,布隆过滤器的内存占用从原来的640GB大幅增加到了35.88GB,且具备较高的查问效率。

7.布隆过滤器的成功

上方是布隆过滤器的Java成功,包含初始化、参与元素和查问元素的代码。

代码说明

这个成功经常使用了MD5哈希函数,可以依据需求选用其余哈希函数。经过调整位数组大小和哈希函数数量,可以在存储效率和误判率之间取得平衡。

布隆过滤器作为一种高效的概率型数据结构,能够在大规模数据集上成功高效的存储和查问,特意实用于URL黑名单这样的场景。经过正当地选用位数组长度和哈希函数数量,我们可以在保障较低误判率的前提下,大幅增加内存经常使用。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8407.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号