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 BloomFilterBasedCmds
BloomFilterBasedCmdsLatency
, 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:
Häufige Anwendungsfälle für Bloom-Filter
Deduplizierung von Werbung und Ereignissen
Betrugserkennung
Filterung schädlicher Inhalte /Spam
Einzigartige Benutzererkennung
Unterschiede zwischen skalierenden und nicht skalierenden Bloom-Filtern
Wie entscheidet man sich zwischen skalierenden und nicht skalierenden Bloom-Filtern
-
Erfahren Sie mehr über die einstellbaren Eigenschaften von Bloom-Filtern. Dazu gehören die Falsch-Positiv-Rate, die Kapazität, die Skalierung und die Nicht-Skalierung und vieles mehr.
Umgang mit großen Bloom-Filtern
-
Empfehlungen und Details, wie Sie überprüfen können, ob ein Bloom-Filter sein Speichernutzungslimit erreicht hat und ob er skaliert werden kann, um die gewünschte Kapazität zu erreichen.
-
Mit dem Befehl BF.INFO können Sie gezielt überprüfen, wie viel Speicher von einem Bloom-Filter-Dokument belegt
wird.
-
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
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.