16、布隆过滤器:减少跟踪内容的内存占用

布隆过滤器:减少跟踪内容的内存占用

1. 引言

在计算机科学中,有一些不太常见的数据结构却能解决常见的问题,布隆过滤器就是其中最突出的例子之一。它在大多数行业中被广泛应用,但知名度却不如人们预期的那样高。本文将详细介绍布隆过滤器,包括其原理、应用场景以及与其他数据结构的对比。

2. 字典问题:跟踪事物

假设你在一家拥有自己电子邮件服务的大公司工作。该服务是遗留系统,仅提供基本功能。经过重组后,新的首席技术官(CTO)决定重塑电子邮件服务,要求开发一个带有联系人列表等功能的全新现代客户端。当你添加新收件人时,应用程序需要检查该收件人是否已在联系人列表中,如果不在则弹出提示框询问是否添加。

由于项目资源有限,无法每次检查联系人时都调用数据库,也没有预算搭建远程分布式缓存。因此,你决定在登录时异步获取联系人列表,将其保存到网页的会话存储空间中,每次查找现有联系人时检查本地副本。

这种在列表中查找特定条目的问题在计算机科学中被称为字典问题。

3. 实现字典的替代方案

我们的联系人网页应用需要完成以下操作:
- 从服务器下载联系人列表
- 创建本地副本以实现快速查找和存储
- 允许查找联系人
- 如果查找失败,提供添加新联系人的选项
- 当添加新联系人或修改现有联系人时与服务器同步

为了解决这些问题,我们需要一种专门的数据结构,它要支持快速插入,同时能通过值查找条目。

3.1 普通数组

使用普通数组时,没有高效的方法来获取元素的索引,也没有高效(如亚线性)的方法来判断元素是否在数组中。唯一的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值