View a markdown version of this page

Erste Schritte mit Bloom-Filtern - Amazon ElastiCache

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit Bloom-Filtern

ElastiCache unterstützt die Bloom-Filter-Datenstruktur, die eine platzsparende probabilistische Datenstruktur bietet, mit der überprüft werden kann, ob ein Element Mitglied einer Menge ist. Bei der Verwendung von Bloom-Filtern sind falsch positive Ergebnisse möglich — ein Filter kann fälschlicherweise angeben, dass ein Element vorhanden ist, obwohl dieses Element dem Satz nicht hinzugefügt wurde. Die Verwendung von Bloom-Filtern verhindert jedoch falsch negative Ergebnisse — falsche Hinweise darauf, dass ein Element nicht existiert, obwohl dieses Element dem Satz hinzugefügt wurde.

Sie können den Prozentsatz potenzieller falsch positiver Ergebnisse auf eine für Ihre Arbeitslast bevorzugte Rate festlegen, indem Sie die FP-Rate anpassen. Sie können auch die Kapazität (die Anzahl der Elemente, die ein Bloom-Filter aufnehmen kann), Eigenschaften für Skalierung und Nicht-Skalierung und vieles mehr konfigurieren.

Nachdem Sie einen Cluster mit einer unterstützten Engine-Version erstellt haben, sind der Bloom-Datentyp und die zugehörigen Befehle automatisch verfügbar. Der bloom Datentyp ist API-kompatibel mit der Bloom-Filter-Befehlssyntax der offiziellen Valkey-Clientbibliothekenvalkey-py, einschließlichvalkey-java, undvalkey-go. Sie können bestehende Bloom-based Valkey- und Redis OSS-Anwendungen problemlos in diese migrieren. ElastiCache Eine vollständige Liste der Befehle finden Sie unter. Bloom-Filter-Befehle

Die Bloom-related Metriken BloomFilterBasedCmdsBloomFilterBasedCmdsLatency, und BloomFilterBasedCmdsECPUs dienen CloudWatch zur Überwachung der Verwendung dieses Datentyps. Weitere Informationen finden Sie unter Metriken für Valkey und Redis OSS.

Anmerkung
  • Um Bloom-Filter verwenden zu können, müssen Sie ElastiCache Valkey 8.1 und höher verwenden.

  • Der Bloom-Datentyp ist nicht RDB-kompatibel mit anderen Bloom-Angeboten, die nicht auf Valkey basieren.

Übersicht über den Datentyp Bloom-Filter

Bloom-Filter sind eine platzsparende probabilistische Datenstruktur, mit der Elemente hinzugefügt und überprüft werden können, ob Elemente vorhanden sind. Falsch positive Ergebnisse sind möglich, wenn ein Filter fälschlicherweise anzeigt, dass ein Element existiert, obwohl es nicht hinzugefügt wurde. Bloom-Filter garantieren jedoch, dass falsch negative Ergebnisse (die fälschlicherweise darauf hinweisen, dass ein Element nicht existiert, obwohl es hinzugefügt wurde) nicht vorkommen.

Die Hauptdokumentationsquelle für Bloom-Filter finden Sie auf der valkey.io-Dokumentationsseite. Diese enthält die folgenden Informationen:

Größenbeschränkung für Bloom

Der Speicherverbrauch eines einzelnen Bloom-Filterobjekts ist auf 128 MB begrenzt. Mit dem BF.INFO <key> SIZE Befehl können Sie überprüfen, wie viel Speicher von einem Bloom-Filter verbraucht wird.

Bloom-ACLs

Ähnlich wie bei den bestehenden Kategorien pro Datentyp (@string, @hash usw.) wurde eine neue Kategorie @bloom hinzugefügt, um die Verwaltung des Zugriffs auf Bloom-Befehle und -Daten zu vereinfachen. Keine anderen vorhandenen Valkey- oder Redis OSS-Befehle gehören zur Kategorie @bloom.

Es gibt 3 bestehende ACL-Kategorien, die aktualisiert wurden und nun die neuen Bloom-Befehle enthalten: @read, @write und @fast. Die folgende Tabelle zeigt die Zuordnung der Bloom-Befehle zu den entsprechenden Kategorien.

Befehl 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

Metriken im Zusammenhang mit Bloom-Filtern

Die folgenden CloudWatch Metriken im Zusammenhang mit Bloom-Datenstrukturen werden bereitgestellt:

CW-Metriken Einheit Serverless/Node-based Description

BloomFilterBasedCmds

Anzahl

beides

Die Gesamtzahl der Bloom-Filterbefehle, einschließlich Lese- und Schreibbefehlen.

BloomFilterBasedCmdsLatency

Mikrosekunden

Self-managed

Latenz aller Bloom-Filterbefehle, einschließlich Lese- und Schreibbefehlen.

BloomFilterBasedCmdsECPUs

Anzahl

Serverless

eCPUs, die von allen Bloom-Filterbefehlen, einschließlich Lese- und Schreibbefehlen, verbraucht werden.

Bloom-Filter-Befehle

Bloom-Filter-Befehle sind auf der Valkey.ioWebsite dokumentiert. Jede Befehlsseite bietet einen umfassenden Überblick über die Bloom-Befehle, einschließlich ihrer Syntax, ihres Verhaltens, ihrer Rückgabewerte und möglicher Fehlerbedingungen.

Name Description
BF.ADD

Fügt einem Bloom-Filter ein einzelnes Element hinzu. Wenn der Filter noch nicht existiert, wird er erstellt.

BF.CARD

Gibt die Kardinalität eines Bloom-Filters zurück.

BF.EXISTS

Ermittelt, ob der Bloom-Filter das angegebene Element enthält.

BF.INFO

Gibt Nutzungsinformationen und Eigenschaften eines bestimmten Bloom-Filters zurück.

BF.INSERT

Erstellt einen Bloom-Filter mit 0 oder mehr Elementen oder fügt Elemente zu einem vorhandenen Bloom-Filter hinzu.

BF.MADD

Fügt einem Bloom-Filter ein oder mehrere Elemente hinzu.

BF.MEXISTS

Ermittelt, ob der Bloom-Filter ein oder mehrere Elemente enthält.

BF.RESERVE

Erstellt einen leeren Bloom-Filter mit den angegebenen Eigenschaften.

Anmerkung

BF.LOADwird nicht unterstützt von ElastiCache. Es ist nur für die Verwendung von AOF relevant, die ElastiCache nicht unterstützt wird.