Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Guida introduttiva ai filtri Bloom
ElastiCache supporta la struttura dati del filtro Bloom, che fornisce una struttura dati probabilistica efficiente in termini di spazio per verificare se un elemento fa parte di un set. Quando si utilizzano i filtri Bloom, sono possibili falsi positivi: un filtro può indicare erroneamente l'esistenza di un elemento, anche se quell'elemento non è stato aggiunto al set. Tuttavia, l'utilizzo dei filtri Bloom eviterà i falsi negativi, ossia indicazioni errate che un elemento non esiste, anche se quell'elemento è stato aggiunto al set.
Puoi impostare la percentuale di potenziali falsi positivi su una frequenza preferita per il tuo carico di lavoro, regolando la frequenza fp. Puoi anche configurare la capacità (il numero di elementi che un filtro Bloom può contenere), le proprietà di ridimensionamento e non ridimensionamento e altro ancora.
Dopo aver creato un cluster con una versione del motore supportata, il tipo di dati Bloom e i comandi associati sono automaticamente disponibili. Il tipo di bloom
dati è compatibile tramite API con la sintassi dei comandi di filtro Bloom delle librerie client ufficiali di Valkeyvalkey-py
, tra cuivalkey-java
, e. valkey-go
È possibile migrare facilmente le applicazioni Valkey e Redis OSS esistenti basate su Bloom in. ElastiCache Per un elenco completo dei comandi, vedere. Comandi del filtro Bloom
Le metriche relative a Bloom BloomFilterBasedCmds
BloomFilterBasedCmdsLatency
, e BloomFilterBasedCmdsECPUs
sono incorporate CloudWatch per monitorare l'utilizzo di questo tipo di dati. Per ulteriori informazioni, consulta Metriche per Valkey e Redis OSS.
Nota
Per utilizzare i filtri Bloom, è necessario utilizzare ElastiCache Valkey 8.1 e versioni successive.
Il tipo di dati bloom non è compatibile con RDB con altre offerte bloom non basate su Valkey.
Panoramica dei tipi di dati dei filtri Bloom
I filtri Bloom sono una struttura di dati probabilistica efficiente in termini di spazio che consente di aggiungere elementi e verificare se esistono elementi. I falsi positivi sono possibili quando un filtro indica erroneamente l'esistenza di un elemento, anche se non è stato aggiunto. Tuttavia, i filtri Bloom garantiscono che non si verifichino falsi negativi (che indicano erroneamente che un elemento non esiste, anche se è stato aggiunto).
La principale fonte di documentazione per i filtri Bloom è disponibile nella pagina della documentazione di valkey.io. Contiene le seguenti informazioni:
Casi d'uso comuni per i filtri Bloom
Deduplicazione di pubblicità/eventi
Rilevamento di attività fraudolente
Filtraggio di contenuti dannosi/spam
Rilevamento unico degli utenti
Differenze tra filtri di fioritura scalabili e non ridimensionanti
Come decidere tra filtri di fioritura scalabili e non ridimensionanti
-
Scopri le proprietà regolabili dei filtri Bloom. Ciò include la frequenza dei falsi positivi, la capacità, le proprietà di scalabilità e non scalabilità e altro ancora.
Gestione di filtri di fioritura di grandi dimensioni
-
Consigli e dettagli su come verificare se un filtro Bloom sta raggiungendo il limite di utilizzo della memoria e se è scalabile per raggiungere la capacità desiderata.
-
È possibile controllare in modo specifico la quantità di memoria consumata da un documento con filtro bloom utilizzando il comando BF.INFO
.
-
Limite di dimensione del fiore
Il consumo di memoria da parte di un singolo oggetto filtro Bloom è limitato a 128 MB. È possibile controllare la quantità di memoria consumata da un filtro Bloom utilizzando il BF.INFO <key> SIZE
comando.
Bloom ACLs
Analogamente alle categorie esistenti per tipo di dati (@string, @hash, ecc.), viene aggiunta una nuova categoria @bloom per semplificare la gestione dell'accesso ai comandi e ai dati di Bloom. Nessun altro comando Valkey o Redis OSS esistente è membro della categoria @bloom.
Esistono 3 categorie ACL esistenti che vengono aggiornate per includere i nuovi comandi Bloom: @read, @write e @fast. La tabella seguente indica la mappatura dei comandi Bloom alle categorie appropriate.
Comando Bloom | @read | @write | @fast | @bloom |
---|---|---|---|---|
BF.ADD |
y |
y |
y |
|
BF.CARD |
y |
y |
y |
|
BF.ESISTE |
y |
y |
y |
|
BF.INFO |
y |
y |
y |
|
BF.INSERT |
y |
y |
y |
|
BF.MADD |
y |
y |
y |
|
BF.MEXIST |
y |
y |
y |
|
BF.RESERVE |
y |
y |
y |
Metriche relative al filtro Bloom
Vengono fornite le seguenti CloudWatch metriche relative alle strutture di dati Bloom:
Metriche CW | Unità | Senza server/progettato autonomamente | Descrizione |
---|---|---|---|
BloomFilterBasedCmds |
Conteggio |
Entrambi |
Il numero totale di comandi del filtro Bloom, inclusi i comandi di lettura e scrittura. |
BloomFilterBasedCmdsLatency |
Microsecondi |
Autogestito |
Latenza di tutti i comandi del filtro Bloom, inclusi i comandi di lettura e scrittura. |
BloomFilterBasedCmdsECPUs |
Conteggio |
Serverless |
ECPUs utilizzata da tutti i comandi del filtro Bloom, inclusi i comandi di lettura e scrittura. |
Comandi del filtro Bloom
I comandi Bloom Filter
Nome | Descrizione |
---|---|
BF.ADD |
Aggiunge un singolo elemento a un filtro Bloom. Se il filtro non esiste già, viene creato. |
BF.CARD |
Restituisce la cardinalità di un filtro Bloom. |
BF.EXISTS |
Determina se il filtro bloom contiene l'elemento specificato. |
BF.INFO |
Restituisce le informazioni sull'utilizzo e le proprietà di uno specifico filtro Bloom. |
BF.INSERT |
Crea un filtro di fioritura con 0 o più elementi o aggiunge elementi a un filtro di fioritura esistente. |
BF.MADD |
Aggiunge uno o più elementi a un filtro di fioritura. |
BF.MEXISTS |
Determina se il filtro bloom contiene 1 o più elementi. |
BF.RESERVE |
Crea un filtro bloom vuoto con le proprietà specificate. |
Nota
BF.LOAD non è supportato da. ElastiCache È rilevante solo per l'utilizzo di AOF, che ElastiCache non supporta.