Redis Xgroup

Redis Xgroup
Redis -Streams wurden aus Version 5 eingeführt.0, was eine herkömmliche Protokolldatenstruktur nur für Anhänge darstellt. Redis -Streams sind fortgeschrittener als ein übliches Protokoll, bei dem es Verbrauchergruppen und einen schnelleren Zugriff auf die Stream -Elemente unterstützt.

Mit Streams können der gleiche Stream von verschiedenen Verbrauchern mit dem XRead -Befehl verzehrt werden. Damit werden dieselben Nachrichten an mehrere Clients gesendet. In einigen Fällen müssen wir eine andere Untergruppe von Nachrichten aus demselben Strom an mehrere Verbraucher weitergeben. Das Konzept der Verbrauchergruppen wurde mit Redis -Streams implementiert, um dies wie in der folgenden Abbildung zu unterstützen.

Wie in der obigen Abbildung gezeigt, die drei Verbraucher Verbraucher1, Verbraucher2 und Verbraucher3 verbrauchen verschiedene Einträge aus dem Stream Benutzerquerien. Jeder dieser Verbraucher ist Teil der Verbrauchergruppe 1. Als Mitglied des Verbrauchers garantiert Gruppe 1 die folgenden Fakten:

  • Jeder Eintrag wird von einem anderen Verbraucher von drei Verbrauchern zu einem bestimmten Zeitpunkt konsumiert. Zwei oder mehr Verbraucher gleichzeitig werden kein Eintrag konsumiert.
  • Eine explizite Bestätigung ist erforderlich, um zu informieren, dass die Push -Nachrichten von einem Verbraucher ordnungsgemäß konsumiert wurden.
  • Die Verbrauchergruppe 1 enthält die zuletzt gelieferte Eintrags -ID und wenn ein Verbraucher nach neuen Nachrichten fragt, bietet er nur die neuesten Nachrichten.
  • Immer wenn ein Verbraucher die Geschichte der Einträge eines bestimmten Streams abfragt.
    • Verbraucher 2 sieht nur Query2: MSG2 und Query5: MSG5 -Einträge als Historie der Nachrichten, die zum Angehörigen gehören "Benutzerquerien"

Der Xgroup -Befehl

Die Xgroup ist der Befehl Container für die Verwaltung der mit Redis -Streams verbundenen Verbrauchergruppen. Es besteht aus mehreren wichtigen Unterbewohnern, um Verbrauchergruppen zu erstellen/zu löschen und Verbraucher zu einer Gruppe zu erstellen/zu löschen. Die grundlegende Syntax des Xgroup -Befehls lautet wie folgt:

Xgroup [[Wert] [Optionen]…]

: Der Unterbefehlsname für Operationen wie die Erstellung und Löschung von Verbrauchern und Verbrauchergruppen.

: Die Unterbefehlsargumente, falls verfügbar.

[Wert]: Wenn ein Argument einen Wert nimmt, kann es angegeben werden. Es ist optional und nur für bestimmte Befehle zulässig.

Das zurückgegebene Ergebnis variiert basierend auf dem angegebenen Unteroffin.

Die Xgroup -Unterbefehle

Für den Befehl Xgroup können mehrere Unterbefehle verwendet werden. Es gibt einen besonderen Unterbefehl namens 'Hilfe' Dies zeigt alle zur Verwendung zur Verfügung stehenden Unterbefehle an.

Xgroup -Hilfe

Der Hilfe Der Unterbefehl gibt eine Reihe von Unterbewohnern mit ihren Beschreibungen zurück.

ERSTELLEN
Der ERSTELLEN Der Unterbefehl kann verwendet werden, um eine neue Verbrauchergruppe für einen bestimmten Stream zu erstellen. Die Syntax ist wie folgt:

Xgroup erstellen Stream_key Group_Name Eintrag_ID | $ [MkStream] [Einträgeread Einträge_Read]

Dadurch wird eine neue Verbrauchergruppe erstellt, die durch den 'Group_Name' identifiziert wird, der dem gegebenen 'zugeordnet istStream_key '. Der "Mkstream" Die Option erstellt einen neuen Stream mit der Länge von 0, wenn der angegebene Stream im Redis -Datenspeicher nicht vorhanden ist.

CreateConsumer
Wenn Sie für eine bestimmte Gruppe einen Verbraucher erstellen müssen. Es akzeptiert nur den Stream -Schlüssel, den Gruppennamen des Verbrauchers und einen eindeutigen Verbrauchernamen als Argumente.

Xgroup createConsumer stream_key Group_Name Consumer_Name

Delconsumer
Ein erstellter Verbraucher kann mit dem Delconsumer -Unterbefehl mit dem Xgroup -Befehl gelöscht werden. Die Delconsumer -Subcomand -Syntax lautet wie folgt:

Xgroup Delconsumer Stream_key Group_Name Consumer_Name

Beachten Sie, dass bevor Sie einen Verbraucher aus der Verbrauchergruppe löschen. Dieser Befehl gibt die Anzahl der ausstehenden Nachrichten zurück, die dem gelöschten Verbraucher zugeordnet sind.

ZERSTÖREN
Wenn Sie eine Verbrauchergruppe mit allen Verbrauchern und ausstehenden Nachrichten löschen müssen. Es wird also empfohlen, diesen Befehl mit Sorgfalt zu verwenden.

Xgroup Destroy Stream_key Group_Name

Dieser Befehl gibt eine Ganzzahl 0 oder 1 zurück, die die Anzahl der gelöschten Verbrauchergruppen entspricht.

SetId
Mit dem SETID -Unterbefehl können Sie den zuletzt gelieferten ID -Wert ändern. Wenn Sie alle Einträge aus dem Stream verarbeiten müssen, sollte die zuletzt gelieferte ID mit dem SETID -Unterbefehl auf 0 eingestellt werden.

XGroup setID stream_key Group_Name Eintrag_id | $ [Einträge read Einträge_Read]

Wenn die zuletzt gelieferte ID ordnungsgemäß festgelegt wurde, gibt der Befehl eine einfache Zeichenfolge zurück OK.

Abschluss

Der Befehl Xgroup Container wird verwendet, um die mit einem bestimmten Stream verbundenen Verbrauchergruppen zu verwalten. Das Sonderangebot HILFE Der Befehl kann verwendet werden, um alle verfügbaren Unterbefehle für den Xgroup -Befehl anzuzeigen. Die Erstellung und Löschung von Verbrauchern und Verbrauchergruppen kann mit den genannten Unterbefehlern durchgeführt werden. Darüber hinaus unterstützt der SETID -Subcomand die Aktualisierung der zuletzt gelieferten ID einer bestimmten Verbrauchergruppe. Insgesamt variiert die Xgroup -Befehlsausgabe mit der Verwendung des Unterbefehls.