网页黑名单系统的算法核心

本文探讨了如何使用布隆过滤器来构建一个网页黑名单系统,该系统在有限空间内允许一定错误率地判断URL是否属于黑名单。通过对哈希函数的介绍,解释了布隆过滤器的工作原理,包括其结构和误判率的计算。最终,讨论了确定过滤器参数m(位数组长度)和k(哈希函数数量)的方法。
摘要由CSDN通过智能技术生成

通过几个题来进行阐述

网页黑名单系统(有一定的容错率,有限的空间)

例如不安全网页的黑名单里有100亿个数据,每一个网页的URL最多占用64B。要求实现一种过滤系统,可以根据网页的URL判断是否在这个黑名单中。系统允许有万分之一的失误率。且额外的空间不能超过30GB。

首先我们分析一下100亿= 10^10, 64 * 10 ^10 约为640GB的空间,所以要将所有的数据放入内存中,并找出是否包含不可能。
这个系统的空间要求比较高。而且能够容忍一定的错误。这时候我们可以试着往布隆过滤器的方向上想一下。

在此之前我需要简单的介绍一下哈希函数的概念,因为在我们接下来的问题中,几乎都用到了哈希函数。(当然我之后会写一篇关于哈希函数的博客有兴趣可以看看)
哈希函数它是个函数,就对应的有输入域和输出域,它的输入域可以是非常大的范围,比如URL,字符串。但是输出域是固定的,假设为D。
1、典型的哈希函数有无限的输入域
2、哈希函数输入相同值,返回相同的值(比如当我们将有重复出现的值进行哈希到不同的文件时,重复的数就不会到其他文件中)
3、哈希函数输入不同值,返回值可能相同,也可能不同(哈希冲突)
4、很多不同的输入值所得到的返回值均匀的分部在D上。

现在在介绍一下布隆过滤器。
所需要的是
1、一个长度为m的bit数组,bit只有2个状态0和1
2、k个相互独立的哈希函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值