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-basierte Valkey- und Redis-OSS-Anwendungen problemlos in diese migrieren. ElastiCache Eine vollständige Liste der Befehle finden Sie unter. Bloom-Filter-Befehle

Die Bloom-bezogenen Metriken BloomFilterBasedCmdsBloomFilterBasedCmdsLatency, und BloomFilterBasedCmdsECPUs sind integriert, CloudWatch um die Verwendung dieses Datentyps zu überwachen. 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.HINZUFÜGEN

y

y

y

BF.CARD

y

y

y

BF.EXISTIERT

y

y

y

BF.INFO

y

y

y

BF.EINFÜGEN

y

y

y

BF.MADD

y

y

y

BF.M EXISTIERT

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 Serverlos/Selbst entworfen Beschreibung

BloomFilterBasedCmds

Anzahl

beides

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

BloomFilterBasedCmdsLatency

Mikrosekunden

Selbstverwaltet

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

BloomFilterBasedCmdsECPUs

Anzahl

Serverless

ECPUs wird von allen Bloom-Filterbefehlen, einschließlich Lese- und Schreibbefehlen, verbraucht.

Bloom-Filter-Befehle

Bloom-Filter-Befehle sind auf der Valkey.io-Website 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 Beschreibung
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. EXISTIERT

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.M EXISTIERT

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

BF.RESERVE

Erzeugt einen leeren Bloom-Filter mit den angegebenen Eigenschaften.

Anmerkung

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