As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceitos básicos do filtro Bloom
ElastiCache suporta a estrutura de dados do filtro Bloom, que fornece uma estrutura de dados probabilística eficiente em termos de espaço para verificar 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 os aplicativos Valkey e Redis OSS existentes baseados em Bloom para o. ElastiCache Para obter uma lista completa de comandos, consulte Comandos de filtro Bloom.
As métricas relacionadas ao BloomBloomFilterBasedCmds,BloomFilterBasedCmdsLatency, e BloomFilterBasedCmdsECPUs são incorporadas 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 o 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:
Casos de uso comuns para filtros bloom
Desduplicação de anúncios e eventos
Detecção de fraudes
Filtro de conteúdo nocivo/spam
Detecção exclusiva de usuários
Diferenças entre filtros bloom escaláveis e não escaláveis
Como decidir entre filtros bloom escaláveis e não escaláveis
-
Saiba mais sobre as propriedades ajustáveis dos filtros Bloom. Isso inclui a taxa de falsos positivos, a capacidade, as propriedades de escalabilidade e não escalabilidade e muito mais.
Manipulação de grandes filtros bloom
-
Recomendações e detalhes sobre como verificar se um filtro bloom está atingindo seu limite de uso de memória e se ele pode ser dimensionado para atingir a capacidade desejada.
-
É possível verificar a quantidade de memória usada por um documento do filtro bloom usando o comando BF.INFO
.
-
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.
Bloom ACLs
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 CloudWatch métricas relacionadas às estruturas de dados do Bloom são fornecidas:
| Métricas do CW | Unidade | Tecnologia sem servidor/baseado em nós | Description |
|---|---|---|---|
|
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 consumido por todos os comandos do filtro Bloom, incluindo comandos de leitura e gravação. |
Comandos de filtro Bloom
Os comandos de filtro Bloom
| Name (Nome) | Description |
|---|---|
| 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 é suportado pelo. ElastiCache É relevante apenas para o uso do AOF, que ElastiCache não oferece suporte.