Conceitos básicos do filtro Bloom - Amazon ElastiCache

Conceitos básicos do filtro Bloom

O ElastiCache é compatível com a estrutura de dados do filtro Bloom, que fornece uma estrutura de dados probabilística e eficiente em termos de memória para testar se um elemento é membro de um conjunto. Ao usar filtros Bloom, falsos positivos são possíveis: um filtro pode indicar incorretamente que um elemento existe, mesmo que esse elemento não tenha sido adicionado ao conjunto. No entanto, o uso de filtros Bloom evitará falsos negativos, indicações incorretas de que um elemento não existe, mesmo que esse elemento tenha sido adicionado ao conjunto.

Você pode definir a porcentagem de possíveis falsos positivos como uma taxa preferencial para sua workload, ajustando a taxa de fp. Você também pode configurar a capacidade (o número de itens que um filtro Bloom pode conter), propriedades escaláveis e não escaláveis e muito mais.

Depois que você criar um cluster com uma versão de mecanismo compatível, o tipo de dados do Bloom e os comandos associados estarão disponíveis automaticamente. O tipo de dados bloom é compatível com a API com a sintaxe do comando de filtro Bloom das bibliotecas de cliente oficiais da Valkey, incluindo valkey-py, valkey-java e valkey-go. Você pode migrar facilmente as aplicações baseadas em Bloom do Valkey e Redis OSS para o ElastiCache. Para obter uma lista completa de comandos, consulte Comandos de filtro Bloom.

As métricas relacionadas ao Bloom, BloomFilterBasedCmds, BloomFilterBasedCmdsLatency e BloomFilterBasedCmdsECPUs são incorporadas ao CloudWatch para monitorar o uso desse tipo de dados. Para obter mais informações, consulte Métricas para o Valkey e Redis OSS.

nota
  • Para usar os filtros Bloom, você deve estar executando no ElastiCache Valkey 8.1 e versões posteriores.

  • O tipo de dados bloom não é compatível com RDB com outras ofertas de bloom não baseadas em Valkey.

Visão geral do tipo de dados do filtro Bloom

Os filtros Bloom são uma estrutura de dados probabilística eficiente em termos de espaço que permite adicionar elementos e verificar se existem elementos. Falsos positivos são possíveis quando um filtro indica incorretamente que um elemento existe, mesmo que ele não tenha sido adicionado. No entanto, os filtros Bloom garantem que falsos negativos (indicando incorretamente que um elemento não existe, mesmo que tenha sido adicionado) não ocorram.

A principal fonte de documentação dos filtros bloom pode ser encontrada na página de documentação do valkey.io. Ela contém as seguintes informações:

Limite de tamanho do bloom

O consumo de memória por um único objeto de filtro Bloom é limitado a 128 MB. É possível verificar a quantidade de memória consumida por um filtro JSON usando o comando BF.INFO <key> SIZE.

ACLs do Bloom

Semelhante às categorias existentes por tipo de dados (@string, @hash etc.), uma nova categoria @bloom foi adicionada para simplificar o gerenciamento do acesso a comandos e dados do JSON. Nenhum outro comando do Valkey ou Redis OSS existente é membro da categoria @bloom.

Existem 3 categorias existentes de ACL que são atualizadas para incluir os novos comandos Bloom: @read, @write e @fast. A tabela a seguir indica o mapeamento de comandos Bloom para as categorias apropriadas.

Comando 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

Métricas relacionadas ao filtro Bloom

As seguintes métricas do CloudWatch relacionadas às estruturas de dados do bloom são fornecidas:

Métricas do CW Unidade Tecnologia sem servidor/baseado em nós Descrição

BloomFilterBasedCmds

Contagem

Ambos

O número total de comandos Bloom, incluindo comandos de leitura e gravação.

BloomFilterBasedCmdsLatency

Microssegundos

Autogerenciado

Latência de todos os comandos de filtro Bloom, incluindo comandos de leitura e gravação.

BloomFilterBasedCmdsECPUs

Contagem

Sem servidor

ECPUs consumidas por todos os comandos de filtro Bloom, incluindo comandos de leitura e gravação.

Comandos de filtro Bloom

Os comandos de filtro Bloom estão documentados no site Valkey.io. Cada página de comando fornece uma visão geral abrangente dos comandos bloom, incluindo sua sintaxe, comportamento, valores de retorno e possíveis condições de erro.

Nome Descrição
BF.ADD

Adiciona um único item a um filtro bloom. Se o filtro ainda não existir, ele será criado.

BF.CARD

Retorna a cardinalidade de um filtro bloom.

BF.EXISTS

Determina se o filtro bloom contém o item especificado.

BF.INFO

Retorna informações de uso e propriedades de um filtro bloom específico.

BF.INSERT

Cria um filtro bloom com 0 ou mais itens ou adiciona itens a um filtro bloom existente.

BF.MADD

Adiciona um ou mais itens a um filtro bloom.

BF.MEXISTS

Determina se o filtro bloom contém 1 ou mais itens.

BF.RESERVE

Cria um filtro bloom vazio com as propriedades especificadas.

nota

O BF.LOAD não é compatível com o ElastiCache. Ele só é relevante para o uso da AOF, com o qual o ElastiCache não é compatível.