首页/数据/数据库速查/布隆过滤器(RedisBloom)防穿透
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条
Redis 运维与场景124 条

布隆过滤器(RedisBloom)防穿透

用 BF.ADD 标记存在的元素,BF.EXISTS 判断:不存在一定为假(可放心拒绝)、存在可能误判;适合「先过滤再查库」的防穿透场景。

数据库速查数据更新于 2026-10-12

基本用法

基本用法
BF.RESERVE users:bf 0.01 1000000    # 误判率 1%,容量 100 万
BF.ADD users:bf user:1001
BF.EXISTS users:bf user:1001        # 1
BF.EXISTS users:bf user:9999        # 0 -> 一定不存在
BF.INFO users:bf
BF.MADD users:bf user:1002 user:1003
误判率误判「存在」但不会误判「不存在」
容量超容量后误判率上升
删除标准布隆过滤器不支持删除(需 Counting Bloom 或定期重建)
布隆过滤器放在缓存之前:先过滤掉必然不存在的请求,再走缓存/数据库;数据增删后要同步维护(全量重建或专用变体)。

易错点

  • BF.RESERVE 不带容量直接建:默认参数误判率不可控
  • 把「存在」误判当精确结果:仍要查一次真实数据

数据来源与参考

  • RedisBloom 官方文档: BF.ADD
  • RedisBloom 官方文档: Bloom filter

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌