布隆过滤器 极简入门

本文是布隆过滤器的极简入门教程,介绍其在解决缓存穿透问题中的应用。布隆过滤器使用bit数组和多个hash函数,存在一定的误判率,但能有效判断key是否存在,不支持get和delete操作。错误率可通过调整数组长度和hash函数数量来控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:搜索缓存穿透问题,常常看到解决方案中提到 布隆过滤器。那么这个东西是啥意思?干什么用的?怎么用?原理是什么?

请看本文的极简入门教程。(严格说,本文是笔者在学习时,提取出的纯干货,力求一看就懂)

1、应用场景

解决缓存穿透问题,业界通用2种方案

缓存空对象 or 布隆过滤器

缓存空对象:实现简单,不会出错(说的是与布隆过滤器相比)

布隆过滤器:实现复杂,存在错误率

2、布隆过滤器 的 作用

把你要缓存的所有key全都塞进布隆过滤器中。

在查询缓存的时候,先拿着key去布隆过滤器中查一下,看是否存在,不存在就可以直接返回,避免了缓存穿透。

你可以简单的理解为,布隆过滤器的作用就相当于map数据结构中的containsKey()这个API

3、布隆过滤器 提供了哪些功能?

2个功能:分别对应着 insert 和 containsKey的作用

4、关于布隆过滤器需要知道的点

1、布隆过滤器底层使用的是bit数组。请注意:我说的是使用了bit数组,可没说key都保存在bit数组里。

2、布隆过滤器本身并不存储key,它的作用只是帮助你判断key是否存在。

3、布隆过滤器存在错误率,即containsKey(key)返回结果true,实际上key可能不存在。

4、布隆过滤器不能delete / g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值