老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

布隆过滤器是什么?老男孩Python

老男孩IT教育

常见问题

2021年6月10日 15:36

众所周知,Python语言在近几年十分火热,并且它的适用范围很广泛,除了岗位规定使用外,还可以用于日常生活,可以自己获取一些榜单、搞一些小游戏等等,对于redis缓存穿透的问题,如何解决呢?办法之一就是使用布隆过滤器。请看下文

       众所周知,Python语言在近几年十分火热,并且它的适用范围很广泛,除了岗位规定使用外,还可以用于日常生活,可以自己获取一些榜单、搞一些小游戏等等,对于redis缓存穿透的问题,如何解决呢?办法之一就是使用布隆过滤器。请看下文:

       Python

       什么是布隆过滤器?

       布隆过滤器是一种数据结构,特点是高效地插入和查询,使用它可以判断某样东西一定不存在或可能存在,相比于传统的数据结构,它更高效、占用空间更少,但是唯一缺点就是它的结果带有一定的可能性,并不是百分百确定的。

        原理:

        如果我们需要插入一个值,会经过hash函数的计算,计算后假设值为2,4,8,那就需要放入所对应的bit位置,接下来再添加一个值,计算后假设值为1,4,6,继续放入所对应的位置,但是这里注意了,两次放入都有数字4,所以可以看出布隆过滤器并不能确认某个数据一定存在,但是与此同时,如果布隆过滤器没有找到我们想要的数值,那么证明是百分百不存在的。

        准确性:

        如何提升准确性呢?目前有两点:

        1:多个hash,增加随机性,减少数据重复的几率

        2:扩大范围,使数值均匀分布,进一步减少数据重复的几率

       话虽如此,也还是不能彻底保证数值是百分百正确的,但是可以确定一个数值是百分百不存在的

       那么python中的布隆过滤器有哪些应用场景呢?

       1.爬虫对url去重,避免爬取相同网址。

       2.缓存穿透,将所有可能存在的数据缓存放入其中,当黑客访问不存在的缓存时迅速返回避免缓存及DB挂掉。

       3.黑名单过滤。

       4.反垃圾邮件,从无数个垃圾邮件列表中判断哪些为垃圾邮件

  如果你对Python感兴趣,想要学到更多知识,就来老男孩教育吧!老男孩教育分为线上、线下班,小伙伴可以根据自身情况选择哦

       推荐阅读:

       Python如何使用MongDB?老男孩Python怎么样?

       8个Python爬虫框架,你知道几个?

       Python集合什么样?老男孩Python

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。