开始使用 Bloom 筛选条件 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 Bloom 筛选条件

ElastiCache 支持 Bloom filter 数据结构,它提供了一种节省空间的概率数据结构来检查元素是否是集合的成员。使用 Bloom 筛选条件时,可能会出现误报,即筛选条件可能会错误地表明某个元素存在,但其实该元素并未添加到集合中。不过,使用 Bloom 筛选条件可以防止误报,即错误地表明某个元素存在,但其实该元素已添加到集合中。

通过调整误报率,您可以将潜在误报的百分比设置为工作负载的首选比率。您还可以配置容量(Bloom 筛选条件可以容纳的项目数量)、扩展和非扩展属性等。

使用受支持的引擎版本创建集群后,Bloom 数据类型和关联的命令将自动可用。bloom 数据类型与 Valkey 官方客户端库(包括 valkey-pyvalkey-javavalkey-go)的 Bloom 筛选命令语法具有 API 兼容性。你可以轻松地将现有的基于 Bloom 的 Valkey 和 Redis OSS 应用程序迁移到。 ElastiCache有关命令的完整列表,请参阅Bloom 筛选命令

与 Bloom 相关的指标BloomFilterBasedCmdsBloomFilterBasedCmdsLatency、和BloomFilterBasedCmdsECPUs, CloudWatch 用于监控此数据类型的使用情况。有关更多信息,请参阅 Valkey 和 Redis OSS 的指标

注意
  • 要使用 Bloom 过滤器,你必须在 ElastiCache Valkey 8.1 及更高版本上运行。

  • Bloom 数据类型与其他并非基于 Valkey 的 Bloom 产品不具有 RDB 兼容性。

Bloom 筛选条件数据类型概述

Bloom 筛选条件是一种空间利用率高的概率数据结构,允许添加元素和检查元素是否存在。如果筛选条件错误地表明某个元素存在,但其实该元素并未添加,则可能会出现误报。不过,Bloom 筛选条件可以保证不出现误报(错误地表明某个元素不存在,但其实该元素已添加)。

有关 Bloom 筛选条件文档的主要来源,请参阅 valkey.io 文档页面。这包含以下信息:

Bloom 大小限制

单个 Bloom 筛选条件对象的内存使用上限为 128 MB。您可以使用 BF.INFO <key> SIZE 命令检查 Bloom 筛选条件所使用的内存量。

绽放 ACLs

与现有的每数据类型类别(@string、@hash 等)类似,添加了一个新的类别 @bloom,以简化对 Bloom 命令和数据的访问管理。没有其他现有的 Valkey 或 Redis OSS 命令属于 @bloom 类别。

有 3 个现有的 ACL 类别已更新为包含新 Bloom 命令:@read、@write 和 @fast。下表指示 Bloom 命令到相应类别的映射。

Bloom 命令 @read @write @fast @bloom

BF.ADD

y

y

y

BF.CARD

y

y

y

BF.EXISTS

y

y

y

BF.INFO

y

y

y

BF.INSERT

y

y

y

BF.MADD

y

y

y

BF.MEXISTS

y

y

y

BF.RESERVE

y

y

y

Bloom 筛选条件相关指标

提供了以下与 bloom 数据结构相关的 CloudWatch 指标:

CW 指标 单位 无服务器/基于节点 说明

BloomFilterBasedCmds

计数

二者

Bloom 筛选命令的总数,包括读取和写入命令。

BloomFilterBasedCmdsLatency

微秒

自行管理

所有 Bloom 筛选命令的延迟,包括读取和写入命令。

BloomFilterBasedCmdsECPUs

计数

Serverless

ECPUs 由所有 Bloom 过滤器命令消耗,包括读取和写入命令。

Bloom 筛选命令

Bloom 筛选命令记录在 Valkey.io 网站上。每个命令页面都全面概述了 Bloom 命令,包括其语法、行为、返回值和潜在的错误条件。

Name 说明
BF.ADD

向 Bloom 筛选条件添加单个项目。如果该筛选条件尚不存在,则将创建。

BF.CARD

返回 Bloom 筛选条件的基数。

BF.EXISTS

确定 Bloom 筛选条件是否包含指定项目。

BF.INFO

返回特定 Bloom 筛选条件的使用信息和属性。

BF.INSERT

创建包含 0 个或更多项目的 Bloom 筛选条件,或者向现有 Bloom 筛选条件添加项目。

BF.MADD

向 Bloom 筛选条件添加一个或多个项目。

BF.MEXISTS

确定 Bloom 筛选条件是否包含 1 个或多个项目。

BF.RESERVE

创建一个具有指定属性的空 Bloom 筛选条件。

注意

不支持 BF.LOAD。 ElastiCache它仅与 AOF 的使用有关,后者 ElastiCache 不支持。