Redis Xlen -Befehl

Redis Xlen -Befehl
Redis Stream ist eine Protokolldatenstruktur, die die Einschränkungen einer normalen Anhängeprotokolldatei überwindet. Dies ist die neueste Ergänzung zu den Redis -Datentypen aus Version 5.0. Es basiert auf dem Publisher-Consumer.

Redis-Stream kann Feldwertpaare in seinen Makroknoten speichern. Es ist maßstabsöffizient und schnell beim Zugriff auf Stream -Einträge, da es auf einer Radixbaumstruktur basiert. Die Einträge sehen aus wie die Redis-Hash-Schlüsselwertepaare.

Die vorherige Abbildung zeigt einen Stream, der in der Schlüssel gespeichert ist "SurveryResponse: User01". Es enthält eine Anzahl von Einträgen.

Zählen Sie Stream -Einträge mit Xlen

In realen Anwendungen müssen wir möglicherweise wissen, wie viele Einträge in einem bestimmten Stream verfügbar sind. Es ist nicht praktisch, einen XRange -Anruf mit minimaler und maximal möglicher IDs zu tätigen, um alle Einträge pro Stream abzufragen und programmatisch zu zählen. Es verbraucht Zeit, wenn zwei Operationen programmatisch lesen und zählen können.

Daher liefert Redis eine Xlen Befehl zum Zählen von Einträgen für einen Stream, der in einem bestimmten Schlüssel gespeichert ist. Dieser Befehl hat eine konstante Zeitkomplexität, die für Ihre Anwendungen schnell ist.

Syntax

Xlen

Der Xlen Der Befehl gibt eine Ganzzahl zurück, die Anzahl der in einem Stream gespeicherten Einträge.

Die Streams unterscheiden sich etwas von anderen Redis -Datentypen, da ein Stream ohne Einträge vorhanden ist. Redis -Streams können mehrere Verbrauchergruppen angehängt haben. Der Xdel Der Befehl löscht den Stream nicht selbst, wenn alle Einträge gelöscht wurden. Daher die Xlen Der Befehl kann in zwei Fällen 0 zurückgeben:

  1. Der Stream ist leer oder alle Einträge wurden bereits gelöscht.
  2. Der Stream -Schlüssel existiert nicht.

Der Stream, der bei Key gespeichert ist SURVEYREPONE: User02 ist leer. Aber es ist zwei Konsumentengruppen angehängt. Daher existiert der Strom. In realen Anwendungen müssen Sie eine explizite Überprüfung mit dem durchführen Existiert Befehl, um zu überprüfen, ob der Redis -Schlüssel existiert oder nicht.

Beispiel: Zählen Sie die Anzahl der Benutzer, die an einer Online -Umfrage teilnehmen

Nehmen wir an, dass ein Restaurant eine Online -Umfrage durchgeführt hat, um eine Star -Bewertung seiner Kunden in seiner Servicequalität zu erhalten. Sie haben einen In-Memory-Redis-Datenspeicher verwendet, um jede Kundenbewertung zu verfolgen. Jeder Stream-Eintrag besteht aus einigen Feldwertpaaren, um die Bewertung als Ganzzahl und Benutzer-ID als Zeichenfolge zu speichern.

Erstellen wir einen Stream mit dem XADD -Befehl.

XADD RestaurantsSurvery * Userid 1 Bewertung 3
XADD RestaurantsSurvery * UserID 2 Bewertung 5
XADD RestaurantsSurvery * UserID 3 Bewertung 1
XADD RestaurantsSurvery * Userid 4 Bewertung 5

Zu dem im Schlüssel gespeicherten Stream wurden vier Einträge hinzugefügt RestaurantsSurvey.

Als nächstes werden wir die verwenden Xlen Befehl zum Zählen der Anzahl der Benutzer, die an der Umfrage teilgenommen haben.

Xlen RestaurantsSurvery

Ausgang:

Wie erwartet beträgt der Renditewert 4. Angenommen, mehr als 10.000 Kunden haben an der Umfrage teilgenommen. Dann ist die Xlen Befehl wäre ein Lebensretter. Sogar der Befehl redis xlen würde ständige Zeit in Anspruch nehmen, um die 4 Kunden oder 10.000 Kunden zu zählen.

Abschluss

Redis-Streams können Tausende von Einträgen enthalten, bis der maximale Speicher erreicht ist, wobei jeder Eintrag wie ein Feldwertpaar aussieht. Normalerweise ist es umständlich, die Anzahl der in einem Stream-Programm gespeicherten Einträge zu zählen. Es verbraucht Zeit für zwei Operationen wie Lesen und Zählen. Daher liefert Redis mit dem Befehl xlen aus dem Box. Es hat eine konstante Zeitkomplexität, die in Hochleistungsanwendungen schnell verwendet werden kann. Der Befehl xlen nimmt nur die Taste des Streams als Parameter.