1 标准布隆过滤器

1.1 优点

  • 支持添加和查询
  • 节省空间

1.2 缺点

  • 不支持删除操作
  • 布隆过滤器要采用多种哈希函数进行多次哈希

2 计数布隆过滤器

2.1 优点

  • 支持添加和删除
  • 支持计数

2.2 缺点

  • 内存消耗是标准布隆过滤器的3-4倍

3 布谷鸟过滤器

3.1 优点

  • 支持动态新增和删除元素
  • 布谷鸟哈希表更加紧凑,可以更加节省空间,散列确保了高空间占用率
  • 布隆过滤器要采用多种哈希函数进行多次哈希,而布谷鸟过滤器只需一次哈希,因此查询效率很高,提供了比标准布隆过滤器更高的查找性能
  • 如果要求错误率小于3%,那么在许多实际应用中,它比布隆过滤器占用的空间更小
  • 比商过滤器(quotient filter,另一种过滤器)之类的替代方案更容易实现

3.2 缺点

  • 布谷鸟过滤器采用一种备用候选桶的方案,候选桶与首选桶可以通过位置和存储值互相异或得出,这种对应关系要求桶的大小必须是 2 的指数倍
  • 布隆过滤器插入时计算好哈希直接写入位即可,而布谷鸟过滤器在计算后可能会出现当前位置上已经存储了指纹,这时候就需要将已存储的项踢到候选桶,随着桶越来越满,产生冲突的可能性越来越大,插入耗时越来越高,因此其插入性能相比布隆过滤器很差
  • 插入重复元素:布隆过滤器在插入重复元素时并没有影响,只是对已存在的位再置一遍。而布谷鸟过滤器对已存在的值会做踢出操作,因此重复元素的插入存在上限
  • 布谷鸟过滤器的删除并不完美:有上述重复插入的限制,删除时也会出现相关的问题:
    • 删除仅在相同哈希值被插入一次时是完美的
    • 如果元素没有插入便进行删除,可能会出现误删除,这和假阳性率的原因相同
    • 如果元素插入了多次,那么每次删除仅会删除一个值,你需要知道元素插入了多少次才能删除干净,或者循环运行删除直到删除失败为止

3.3 参数

  • 哈希函数个数(k):哈希个数,取 2 就足够
  • 桶大小(b):每个桶存储多少个指纹
  • 指纹大小(f):每个指纹存储键的哈希值的多少位

3.4 删除

布谷鸟过滤器就像计数布隆过滤器,可以通过从哈希表删除相应的指纹删除插入的项。

布隆过滤器、计数布隆过滤器、布谷鸟过滤器相关推荐

  1. 过滤请求绝技,布隆过滤器与布谷鸟过滤器

    欢迎关注方志朋的博客,回复"666"获面试宝典 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们 ...

  2. Redis 之布隆过滤器与布谷鸟过滤器

    欢迎关注方志朋的博客,回复"666"获面试宝典 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们 ...

  3. Redis 过滤请求绝技 — 布隆过滤器与布谷鸟过滤器

    来源:www.cnblogs.com/Courage129/p/14337466.html 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤 ...

  4. 过滤请求绝技 — 布隆过滤器与布谷鸟过滤器

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 大家都知道,在计 ...

  5. 为什么我加了过滤器然后就登不进去了_布隆过滤器过时了,未来属于布谷鸟过滤器?...

    为了解决布隆过滤器不能删除元素的问题,布谷鸟过滤器横空出世.论文<Cuckoo Filter:Better Than Bloom>作者将布谷鸟过滤器和布隆过滤器进行了深入的对比.相比布谷鸟 ...

  6. 布隆过滤器与布谷鸟过滤器

    大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有 ...

  7. Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?

    点击关注公众号,实用技术文章及时了解 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息 ...

  8. Redis布隆过滤器与布谷鸟过滤器

    -     目录    - 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信 ...

  9. Redis 之布隆过滤器,增强版,布谷鸟过滤器

    https://www.cnblogs.com/Chary/p/15682276.html 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤 ...

  10. 过滤请求绝技 !布隆过滤器与布谷鸟过滤器

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

最新文章

  1. 洛谷P1073最优贸易——双向取值
  2. 《Spring实战》读书笔记--SpringMVC之forward与redirect
  3. 深度学习篇| keras入门(一)
  4. Curator实现分布式锁的基本原理-InterProcessMutex.acquire
  5. 基础知识—循环语句-while
  6. JUnit编写单元测试代码注意点小结
  7. css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...
  8. C# 插件构架实战(Jack H Hansen )
  9. 【听说有人想转码】入门----凯撒密码(密文解密,偏移)
  10. 天才基本法中预测犯罪发生地点的数学建模真的可以为所欲为【全国大学生数学建模竞赛】
  11. 利用哈希表设计快速电话号码查询系统
  12. 计算机专业自我简介50字,2021年个人简历自我评价50字
  13. android 汉字笔画拆写,汉字笔画顺序之重新开启
  14. 微信小程序:数据传输长度已经超过最大长度 1048576 的错误
  15. SIFT(Scale Invariant Feature Transform) 算法小结及实验
  16. TDengine在图扑工业物联网监控平台中的应用
  17. 2014-2015-2 《Java程序设计》课程学生博客列表
  18. 5年单片机学习总结-ED China【转】
  19. MMORPG游戏优化报告
  20. 俄罗斯无线认证-FAC认证

热门文章

  1. java web食谱网站_基于jsp的食谱菜谱网站-JavaEE实现食谱菜谱网站 - java项目源码...
  2. GO Frame框架搭建一个web网站(一)
  3. tableau高级图形的应用及可视化实现方法
  4. 更改电脑桌面小图标——更好的摸鱼小技巧
  5. oracle更新编号的值,更改oracle数据库编码
  6. 红雪iOS6.1.3不完美越狱教程
  7. 彻底关闭银河麒麟操作系统防火墙
  8. 细粒度分析--WS-DAN
  9. Linux 测速(使用SpeedTest)
  10. Liferay环境搭建、简单说明与相关资料