Redis Pub/Sub Nachrichtenübermittlung (Messaging)

RedisRedisBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie das Pub/Sub-Messaging-System von Redis erkunden. Sie werden lernen, wie man Kanäle abonniert (subscribe), Nachrichten veröffentlicht (publish) und das Abonnement aufhebt (unsubscribe). Dieses Lab führt Sie durch die grundlegenden Operationen mit den Befehlen SUBSCRIBE, PUBLISH, UNSUBSCRIBE und PSUBSCRIBE.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552102{{"Redis Pub/Sub Nachrichtenübermittlung (Messaging)"}} end

Einen Kanal mit SUBSCRIBE abonnieren

In diesem Schritt lernen Sie, wie Sie in Redis einen Kanal mit dem Befehl SUBSCRIBE abonnieren. Das Abonnieren eines Kanals ermöglicht es Ihnen, Nachrichten zu empfangen, die an diesen Kanal gesendet werden. Dies ist ein grundlegendes Konzept im Pub/Sub-Messaging-System von Redis.

Öffnen Sie zunächst ein Terminal. Sie können das im LabEx-Umfeld bereitgestellte Xfce-Terminal verwenden.

Verbinden Sie sich nun mit dem Redis-Server mit dem Befehl redis-cli:

redis-cli

Sie sollten die Redis-Eingabeaufforderung sehen: 127.0.0.1:6379>.

Als Nächstes abonnieren Sie einen Kanal namens mychannel mit dem Befehl SUBSCRIBE:

SUBSCRIBE mychannel

Die Ausgabe wird in etwa so aussehen:

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mychannel"
3) (integer) 1

Lassen Sie uns die Ausgabe aufschlüsseln:

  • "subscribe": Dies zeigt an, dass Sie einen Kanal erfolgreich abonniert haben.
  • "mychannel": Dies ist der Name des Kanals, den Sie abonniert haben.
  • (integer) 1: Dies ist die Anzahl der Kanäle, die Sie derzeit abonniert haben.

Es ist wichtig, dieses Terminal geöffnet zu lassen und den Kanal abonniert zu haben. Wir werden ein anderes Terminal verwenden, um Nachrichten zu veröffentlichen (publish).

Beenden Sie nun redis-cli in diesem Terminal. Dies ist wichtig, damit der Befehlsverlauf korrekt protokolliert wird. Drücken Sie Strg+C, um das Abonnement zu beenden, geben Sie dann exit ein und drücken Sie die Eingabetaste.

exit

Nachrichten mit PUBLISH veröffentlichen

In diesem Schritt lernen Sie, wie Sie Nachrichten mit dem Befehl PUBLISH in Redis an einen Kanal veröffentlichen (publish). Das Veröffentlichen von Nachrichten ist die Kernfunktionalität des Pub/Sub-Systems und ermöglicht es Ihnen, Daten an alle Abonnenten (subscribers) eines bestimmten Kanals zu senden.

Öffnen Sie ein neues Terminal. Sie können das bereitgestellte Xfce-Terminal verwenden.

Verbinden Sie sich mit dem Redis-Server mit dem Befehl redis-cli:

redis-cli

Sie sollten die Redis-Eingabeaufforderung sehen: 127.0.0.1:6379>.

Veröffentlichen Sie nun eine Nachricht an den Kanal mychannel mit dem Befehl PUBLISH:

PUBLISH mychannel "Hallo, Redis!"

Die Ausgabe ist die Anzahl der Clients, die die Nachricht empfangen haben:

(integer) 1

In diesem Fall ist die Ausgabe (integer) 1, da Sie im vorherigen Schritt mychannel abonniert haben. Wenn Sie sich nicht angemeldet hätten, wäre die Ausgabe (integer) 0.

Beenden Sie nun redis-cli in diesem Terminal.

exit

Wechseln Sie zurück zum ersten Terminal (in dem Sie in Schritt 1 mychannel abonniert haben). Sie sollten die Nachricht sehen, die Sie gerade veröffentlicht haben. Wenn Sie dieses Terminal geschlossen haben, müssen Sie ein neues Terminal öffnen und mychannel mit dem Befehl SUBSCRIBE mychannel erneut abonnieren.

redis-cli
SUBSCRIBE mychannel

Lassen Sie dieses Terminal geöffnet und abonniert.

Abmelden mit UNSUBSCRIBE

In diesem Schritt lernen Sie, wie Sie sich mit dem Befehl UNSUBSCRIBE von einem Kanal in Redis abmelden. Das Abmelden (unsubscribe) entfernt einen Client aus der Liste der Abonnenten (subscribers) für einen bestimmten Kanal und verhindert, dass er weitere Nachrichten empfängt, die an diesen Kanal gesendet werden.

Ausgehend von den vorherigen Schritten sollten Sie ein Terminal geöffnet und mychannel abonniert haben.

Führen Sie in diesem Terminal den folgenden Befehl aus, um sich vom Kanal mychannel abzumelden:

UNSUBSCRIBE mychannel

Die Ausgabe wird wie folgt aussehen:

1) "unsubscribe"
2) "mychannel"
3) (integer) 0

Lassen Sie uns die Ausgabe aufschlüsseln:

  • "unsubscribe": Dies zeigt an, dass Sie sich von einem Kanal abgemeldet haben.
  • "mychannel": Dies ist der Name des Kanals, von dem Sie sich abgemeldet haben.
  • (integer) 0: Dies ist die Anzahl der Kanäle, die Sie derzeit abonniert haben. Sie ist jetzt 0, da Sie sich von mychannel abgemeldet haben.

Beenden Sie nun redis-cli in diesem Terminal.

exit

Öffnen Sie ein neues Terminal und verbinden Sie sich mit Redis:

redis-cli

Veröffentlichen Sie eine weitere Nachricht an mychannel:

PUBLISH mychannel "Ist da noch jemand?"

Die Ausgabe in diesem Terminal wird sein:

(integer) 0

Dies zeigt an, dass keine Clients die Nachricht empfangen haben, da Sie sich im vorherigen Schritt abgemeldet haben.

Beenden Sie nun redis-cli in diesem Terminal.

exit

Dies demonstriert, wie Sie sich von einem Kanal abmelden und verhindern, dass Sie weitere Nachrichten empfangen, die an diesen Kanal gesendet werden.

Muster-Abonnement mit PSUBSCRIBE

In diesem Schritt lernen Sie, wie Sie Kanäle mithilfe von Mustern mit dem Befehl PSUBSCRIBE in Redis abonnieren. Mit PSUBSCRIBE können Sie mehrere Kanäle abonnieren, die einem bestimmten Muster entsprechen. Dies ist nützlich, wenn Sie Nachrichten von einer Gruppe verwandter Kanäle empfangen möchten, ohne jeden einzelnen zu abonnieren.

Öffnen Sie ein Terminal.

Verbinden Sie sich mit dem Redis-Server mit dem Befehl redis-cli:

redis-cli

Abonnieren Sie nun Kanäle, die dem Muster news.* entsprechen, mit dem Befehl PSUBSCRIBE:

PSUBSCRIBE news.*

Die Ausgabe wird in etwa so aussehen:

Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news.*"
3) (integer) 1

Lassen Sie uns die Ausgabe aufschlüsseln:

  • "psubscribe": Dies zeigt an, dass Sie ein Muster erfolgreich abonniert haben.
  • "news.*": Dies ist das Muster, das Sie abonniert haben. Das .* ist ein Wildcard-Zeichen (Platzhalter), das mit beliebigen Zeichen übereinstimmt.
  • (integer) 1: Dies ist die Anzahl der Muster, die Sie derzeit abonniert haben.

Lassen Sie dieses Terminal geöffnet und abonniert.

Beenden Sie nun redis-cli in diesem Terminal.

exit

Öffnen Sie ein neues Terminal und verbinden Sie sich mit Redis:

redis-cli

Veröffentlichen Sie eine Nachricht an den Kanal news.sports mit dem Befehl PUBLISH:

PUBLISH news.sports "Sportnachrichten-Update!"

Die Ausgabe in diesem Terminal ist die Anzahl der Abonnenten, die die Nachricht empfangen haben:

(integer) 1

Beenden Sie nun redis-cli in diesem Terminal.

exit

Wechseln Sie zurück zum ersten Terminal (in dem Sie das Muster abonniert haben). Sie sollten die Nachricht sehen, die Sie gerade veröffentlicht haben. Wenn Sie dieses Terminal geschlossen haben, müssen Sie ein neues Terminal öffnen und news.* mit dem Befehl PSUBSCRIBE news.* erneut abonnieren.

redis-cli
PSUBSCRIBE news.*

Lassen Sie dieses Terminal geöffnet und abonniert.

Zusammenfassung

In diesem Lab haben Sie die Grundlagen der Redis Pub/Sub-Nachrichtenübermittlung (Messaging) kennengelernt. Sie haben gelernt, wie Sie Kanäle mit dem Befehl SUBSCRIBE abonnieren, Nachrichten mit dem Befehl PUBLISH an Kanäle senden, Kanäle mit dem Befehl UNSUBSCRIBE abbestellen und Kanäle mit dem Befehl PSUBSCRIBE mithilfe von Mustern abonnieren. Diese Befehle sind unerlässlich, um Echtzeit-Messaging-Anwendungen mit Redis zu erstellen.