布隆过滤器、计数布隆过滤器、布谷鸟过滤器
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 删除
布谷鸟过滤器就像计数布隆过滤器,可以通过从哈希表删除相应的指纹删除插入的项。
布隆过滤器、计数布隆过滤器、布谷鸟过滤器相关推荐
- 过滤请求绝技,布隆过滤器与布谷鸟过滤器
欢迎关注方志朋的博客,回复"666"获面试宝典 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们 ...
- Redis 之布隆过滤器与布谷鸟过滤器
欢迎关注方志朋的博客,回复"666"获面试宝典 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们 ...
- Redis 过滤请求绝技 — 布隆过滤器与布谷鸟过滤器
来源:www.cnblogs.com/Courage129/p/14337466.html 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤 ...
- 过滤请求绝技 — 布隆过滤器与布谷鸟过滤器
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 大家都知道,在计 ...
- 为什么我加了过滤器然后就登不进去了_布隆过滤器过时了,未来属于布谷鸟过滤器?...
为了解决布隆过滤器不能删除元素的问题,布谷鸟过滤器横空出世.论文<Cuckoo Filter:Better Than Bloom>作者将布谷鸟过滤器和布隆过滤器进行了深入的对比.相比布谷鸟 ...
- 布隆过滤器与布谷鸟过滤器
大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有 ...
- Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?
点击关注公众号,实用技术文章及时了解 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息 ...
- Redis布隆过滤器与布谷鸟过滤器
- 目录 - 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信 ...
- Redis 之布隆过滤器,增强版,布谷鸟过滤器
https://www.cnblogs.com/Chary/p/15682276.html 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤 ...
- 过滤请求绝技 !布隆过滤器与布谷鸟过滤器
点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...
最新文章
- 洛谷P1073最优贸易——双向取值
- 《Spring实战》读书笔记--SpringMVC之forward与redirect
- 深度学习篇| keras入门(一)
- Curator实现分布式锁的基本原理-InterProcessMutex.acquire
- 基础知识—循环语句-while
- JUnit编写单元测试代码注意点小结
- css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...
- C# 插件构架实战(Jack H Hansen )
- 【听说有人想转码】入门----凯撒密码(密文解密,偏移)
- 天才基本法中预测犯罪发生地点的数学建模真的可以为所欲为【全国大学生数学建模竞赛】
- 利用哈希表设计快速电话号码查询系统
- 计算机专业自我简介50字,2021年个人简历自我评价50字
- android 汉字笔画拆写,汉字笔画顺序之重新开启
- 微信小程序:数据传输长度已经超过最大长度 1048576 的错误
- SIFT(Scale Invariant Feature Transform) 算法小结及实验
- TDengine在图扑工业物联网监控平台中的应用
- 2014-2015-2 《Java程序设计》课程学生博客列表
- 5年单片机学习总结-ED China【转】
- MMORPG游戏优化报告
- 俄罗斯无线认证-FAC认证