Skip to content
进阶

一句话答案

位数组+多个哈希函数:可能存在(有误判)或一定不存在(无漏判),用于缓存穿透防护。

核心要点

原理: 插入时 k 个哈希置 1;查询时全 1 可能存在,有 0 一定不存在

特点: 空间高效 / 有假阳性无假阴性 / 不支持删除

应用: 缓存穿透防护 / URL去重 / HBase避免无效读

追问与易错

追问方向:

  • 布隆过滤器能删除吗?
  • 误判率怎么控制?
  • 和 HashSet 比优势?

易错点:

  • ❌ 布隆过滤器 100% 准确——有假阳性
  • ❌ 可以替代缓存——只能判断存在性

💡 记忆锚点

布隆过滤器像门口的"黑名单速查":用k个哈希函数把元素映射到位数组的k个位置置1。查询时全是1说"可能在"(有误判,因为位可能被别人占了),有一个0就说"绝对不在"(无漏判)。空间极省但不能删除(置0会影响别人)。Redis用它挡缓存穿透:不在布隆里的请求直接拒绝,不打到数据库。