命令介绍
Bloom Filter Module(
valkey-bloom)提供概率性数据结构,用于高效判断元素是否"可能存在"于集合中。该模块适用于缓存穿透防护、URL 去重、用户推荐去重、流量异常检测、实时分位数监控等大数据场景。该模块自 Valkey 8.0 起支持,不属于 Redis 内核命令集。BF.RESERVE:创建布隆过滤器并指定容量和误判率。
BF.ADD / BF.MADD:添加单个或多个元素。
BF.EXISTS / BF.MEXISTS:检查单个或多个元素是否可能存在(不存在一定正确、存在可能误判)。
BF.CARD:获取已添加唯一元素数量的估计值。
BF.INFO:查看过滤器的容量、已添加元素数、误判率等信息。
BF.INSERT:创建含初始元素的过滤器(结合 RESERVE 和 ADD 的功能)。
BF.LOAD:在 AOF 重写期间用于恢复布隆过滤器。
命令支持概览
基础读写命令:
BF.ADD、BF.MADD、BF.EXISTS、BF.MEXISTS、BF.CARD,用于向布隆过滤器添加元素、批量添加元素、检查元素是否存在、批量检查是否存在、获取已添加唯一元素数量估计。Valkey 8.0标准架构与集群架构均支持。其中 BF.ADD 和 BF.MADD 在过滤器不存在时自动以默认参数创建。过滤器管理命令:
BF.RESERVE、BF.INSERT、BF.INFO,用于创建指定属性的空布隆过滤器(可预设误判率和容量)、创建含初始元素的过滤器、查看过滤器使用信息与属性。Valkey 8.0标准架构与集群架构均支持。持久化命令:
BF.LOAD,在 AOF 重写期间用于恢复布隆过滤器。Valkey 8.0标准架构与集群架构均支持。跨 Slot 限制:Bloom Filter 全部命令均操作单个布隆过滤器键,遵循标准键路由规则,不存在跨 Slot 限制。
命令兼容性矩阵
说明:
Bloom Filter Module 为 Valkey 专属扩展模块,非 Redis 内核功能,因此所有 Redis 版本均不支持。全部命令操作单个键,在集群架构下按标准键路由规则分发,无跨 Slot 限制。
命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Valkey 8.0标准架构 | Valkey 8.0集群架构 |
bf.add | ✓ | ✓ | ✓ | ✓ |
bf.madd | ✓ | ✓ | ✓ | ✓ |
bf.exists | ✓ | ✓ | ✓ | ✓ |
bf.mexists | ✓ | ✓ | ✓ | ✓ |
bf.card | ✓ | ✓ | ✓ | ✓ |
bf.reserve | ✓ | ✓ | ✓ | ✓ |
bf.insert | ✓ | ✓ | ✓ | ✓ |
bf.info | ✓ | ✓ | ✓ | ✓ |
bf.load | ✓ | ✓ | ✓ | ✓ |