码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis-布隆过滤器(Bloom Filter)


    一、什么是布隆过滤器
    布隆过滤器,Bloom Filter是1970年由Bloom提出的,它是由一组哈希(Hash)函数和一个位阵列组成。布隆过滤器可以用于查询一个元素是否存在于一个集合当中,查询结果为以下二者之一:

    这个元素可能存在于这个集合当中。
    这个元素一定不存在于这个集合当中。
    布隆过滤器的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。
    其他问题由于错误率影响hash函数的数量,当hash函数越多,每次插入、查询需做的hash操作就越多。
    布隆过滤器在实际中主要用来解决网页URL去重复,垃圾邮件检测,大集合中重复元素判断和缓存击穿等问题。
    二、布隆过滤器
    数据结构:
    布隆过滤器是由一个固定大小的二进制向量或者位图(bitmap)和一系列映射函数组成的。

    对于长度为 m 的位数组,在初始状态时,它所有位置都被置为0
    增加元素:
    当一个元素加入布隆过滤器中的时候,会进行如下操作:

    使用布隆过滤器中的哈希函数对元素值进行计算,得到哈希值(有几个哈希函数得到几个哈希值)
    根据得到的哈希值,在位数组中把对应下标的值置为 1
    在这里插入图片描述
    用哈希计算来判断是否存在总是避免不了哈希碰撞,降低碰撞概率有两个方法
    1.增加哈希函数
    2.增加位数组容量
    可以通过下面这个网站技术需要多少哈希函数和位数组容量达到多少的容错率
    https://hur.st/bloomfilter/?n=1000000&p=0.03&m=&k=
    删除元素:
    布隆过滤器不支持元素的删除,会出现问题删除的哈希点位可能是别的元素依赖的点,删除后导致缓存无法命中。
    可以使用定期重建布隆过滤器来规避这个问题。

  • 相关阅读:
    深入解析Python执行定时任务:从基础到高级
    【uniapp】swiper组件touch事件和click兼容问题
    2022 年十大接口测试工具合集
    Opencv——can‘t open/read file: check file path/integrity的解决办法
    既然有了量化交易,技术分析还有存在的必要么?有专门收割自动交易系统的策略吗?
    vue3-基础知识(4)- 组件
    2022年最新前端面试题,持续更新
    android原生集成Rn项目
    Java.lang.Class类 getDeclaredConstructors()方法有什么功能呢?
    win禁用shift切换输入法
  • 原文地址:https://blog.csdn.net/weixin_43862733/article/details/134434240
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号