前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2020-11-09:谈谈布隆过滤器和布谷鸟过滤器的相同点和不同点?

2020-11-09:谈谈布隆过滤器和布谷鸟过滤器的相同点和不同点?

原创
作者头像
福大大架构师每日一题
修改于 2020-11-10 02:18:53
修改于 2020-11-10 02:18:53
1.8K0
举报

福哥答案2020-11-09:

相同点:

都是过滤器。

不同点:

算法:布隆过滤器多个hash函数。布谷鸟过滤器用布谷鸟哈希算法。

能否删除:布隆过滤器无法删除元素。布谷鸟过滤器可以删除元素,有误删可能。

空间是否2的指数:布隆过滤器不需要2的指数。布谷鸟过滤器必须是2的指数。

空间利用率:相同误判下,布谷鸟空间节省40%多。

查询性能:布隆过滤器查询性能弱,原因是使用了多个hash函数,内存跨度大,缓存行命中率低。布谷鸟过滤器访问内存次数低,效率相对高。

哈希相关:布隆过滤器的多个函数函数之间没关系。布谷鸟过滤器的两个哈希函数可互相推导,两者有关系,用到了【空间是2的指数】和【按位与】。

重复插入相同元素:布隆过滤器天然自带重复过滤。布谷鸟过滤器会发生挤兑循环问题。


Redis布隆Bloom过滤器

布隆过滤器过时了,未来属于布谷鸟过滤器?

【Redis 第七篇】面试加分项:缓存穿透,布隆过滤器-计数过滤器-布谷鸟过滤器(好文005)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
布隆过滤器过时了,未来属于布谷鸟过滤器?
为了解决布隆过滤器不能删除元素的问题,布谷鸟过滤器横空出世。论文《Cuckoo Filter:Better Than Bloom》作者将布谷鸟过滤器和布隆过滤器进行了深入的对比。相比布谷鸟过滤器而言布隆过滤器有以下不足:查询性能弱、空间利用效率低、不支持反向操作(删除)以及不支持计数。
老钱
2019/06/17
3.4K0
Redis 之布隆过滤器与布谷鸟过滤器
大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景:
玄姐谈AGI
2021/11/23
8610
Go语言实现布谷鸟过滤器
在我们工作中,如果遇到如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断一般想到的是将集合中所有元素保存起来,然后通过比较确定。如果通过性能最好的Hash表来进行判断,那么随着集合中元素的增加,我们需要的存储空间也会呈现线性增长,最终达到瓶颈。
luozhiyun
2021/02/28
1.3K0
Redis之布隆过滤器(Bloom Filter)解读
在实际开发中,会遇到很多要判断一个元素是否在某个集合中的业务场景,类似于垃圾邮件的识别,恶意ip地址的访问,缓存穿透等情况。类似于缓存穿透这种情况,有许多的解决方法,如:redis存储null值等,而对于垃圾邮件的识别,恶意ip地址的访问,我们也可以直接用 HashMap 去存储恶意ip地址以及垃圾邮件,然后每次访问时去检索一下对应集合中是否有相同数据。
一个风轻云淡
2023/10/15
8130
Redis之布隆过滤器(Bloom Filter)解读
Bloom Filter 的后继者?布谷鸟哈希与布谷鸟过滤器
之前我们聊过 LevelDB 中的布隆过滤器,它利用一组哈希函数和一块内存可以表示一个数据集,并支持对集合中数据条目的有无进行快速查询。它虽有一定误报率,但是只使用相当小的内存,因此在特定场景下特别好用。不过它有一个显著的缺陷——不支持删除。本文我们介绍一种新的数据结构:布谷鸟过滤器,在紧凑的使用内存同时,支持删除。本着刨根问底的精神,我们从最基础的哈希说起。
木鸟杂记
2021/12/09
1.6K0
Bloom Filter 的后继者?布谷鸟哈希与布谷鸟过滤器
高级算法篇:布隆过滤器?非也,布谷鸟过滤器是也
过滤器在数据科学中的应用十分广泛,包括数据库查询、数据快速检索,数据去重等等。过滤器的出现是为了解决在大量数据的环境下,能够更好更快的(节省计算资源或者存储资源)筛查数据的需求。实际的应用场景有:
IT大咖说
2019/11/26
3.3K0
5分钟教你认识布隆过滤器
当我们谈论到redis缓存穿透问题的时候,其中一个解决方法就是使用布隆过滤去,那么布隆过滤器到底是什么呢? 关注公主号thisjava,今天就带大家初识布隆过滤器
编程思维
2023/02/14
5991
5分钟教你认识布隆过滤器
布隆过滤器Bloom Filter简介
当需要判断一个元素是否存在于海量数据集合中,不仅查找时间慢,还会占用大量存储空间,接下来看一下布隆过滤器如何解决这个问题
全栈程序员站长
2022/06/29
5060
布隆过滤器Bloom Filter简介
面试官:大量请求 Redis 不存在的数据,从而打倒数据库,你有什么方案?
点击关注公众号,Java干货及时送达 作者:等不到的口琴 链接:www.cnblogs.com/Courage129/p/14337466.html 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 我们业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有相关信息,有的话返回,如果没有的话可能就要去数据库里面查询,这时候有一个问题,如果很多请求是在请求数据库根本不存在的数据,那么数据库就要频繁响应这种不必要的IO
Java技术栈
2022/06/06
3370
面试官:大量请求 Redis 不存在的数据,从而打倒数据库,你有什么方案?
Redis布隆Bloom过滤器
  Redis提供了三种强大数据结构:HyperLogLog,布隆过滤器和布谷鸟过滤器。本文讨论布隆过滤器:
物流IT圈
2019/07/16
1.5K0
白话布隆过滤器
日常开发中,一个常见需求是判断一个元素是否在一个集合中。比如当你在浏览器中输入一个网址的时候,浏览器会判断网址是否在黑名单里。通常的解决方案是直接查询数据库,看看是否存在相关的记录,不过这往往会比较慢,于是我们又会引入缓存来提升速度,可是当数据比较多的时候,缓存会消耗大量的内存。有没有既速度快又节省内存的解决方案呢?本文介绍一种算法:布隆过滤器(Bloom filter)。
LA0WAN9
2021/12/14
2870
白话布隆过滤器
布隆过滤器 | 亿级数据处理原理与实战
布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。
Rude3Knife的公众号
2020/05/15
2.1K0
技术分享 | 缓存穿透 - Redis Module 之布隆过滤器
假设目前有一后端接口GET /userinfo/100,实际数据库内也只有最大ID为100的用户。
爱可生开源社区
2022/12/21
9080
技术分享 | 缓存穿透 - Redis Module 之布隆过滤器
假设目前有一后端接口GET /userinfo/100,实际数据库内也只有最大ID为100的用户。
爱可生开源社区
2022/12/21
4160
技术分享 | 缓存穿透 - Redis Module 之布隆过滤器
基于Guava布隆过滤器的海量字符串高效去重实践
使用Google Guava库来实现基于布隆过滤器的海量字符串去重是一个很好的选择。布隆过滤器是一种空间效率极高的概率型数据结构,它利用位数组表示集合,并使用哈希函数将元素映射到位数组的某些位置。布隆过滤器可以高效地检查一个元素是否可能属于某个集合,但有一定的误报率。
公众号:码到三十五
2024/03/19
2700
基于Guava布隆过滤器的海量字符串高效去重实践
Redis进阶-布隆过滤器
我们在 Redis进阶-Redis缓存优化中 讲到了 缓存穿透 的解决防范: 比缓存空值更好的一种解决方式 布隆过滤器 ,这里我们详细讲解下。
小小工匠
2021/08/17
8940
品味布隆过滤器 Bloom filter的设计之美
你可能没想到: RocketMQ、 Hbase 、Cassandra 、LevelDB 、RocksDB 这些知名项目中都有布隆过滤器的身影。
勇哥java实战
2023/04/14
2.4K0
品味布隆过滤器 Bloom filter的设计之美
硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战
在Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?中我们说到可以使用布隆过滤器避免「缓存穿透」。
码哥字节
2022/04/08
15.8K0
硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战
Redis-布隆过滤器
布隆过滤器(Bloom Filter)是一种数据结构,由布隆于1970年提出。它由一个很长的二进制向量和一系列随机映射函数组成。其主要应用是判断一个元素是否在一个集合中。布隆过滤器具有空间效率和查询时间远远超过一般算法的优点,但也存在一定的误判率和删除困难的缺点。
Kokomo
2023/11/24
4980
Redis-布隆过滤器
十分钟带你理解什么是布隆过滤器?
之前我们介绍Redis入门系列课程的时候,讲了Redis的缓存雪崩、穿透、击穿。在文章里我们说了解决缓存穿透的办法之一,就是使用布隆过滤器,但是由于并没有详细介绍什么是布隆过滤器,所以就有很多小伙伴问我——到底什么是布隆过滤器?
章为忠学架构
2023/03/23
1.4K0
十分钟带你理解什么是布隆过滤器?
相关推荐
布隆过滤器过时了,未来属于布谷鸟过滤器?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档