Redis-Pub/Sub
Redis Pub/Sub (Pub/Sub) ist ein Nachrichtenkommunikationsmuster: Sender (pub) senden Nachrichten, und Abonnenten (sub) empfangen Nachrichten.
Redis-Clients können beliebig viele Kanäle abonnieren.
Das folgende Diagramm zeigt die Beziehung zwischen channel1 und den drei Clients, die diesen Kanal abonniert haben — client2, client5 und client1:
Wenn eine neue Nachricht über den PUBLISH-Befehl an channel1 gesendet wird, wird die Nachricht an die drei Clients zugestellt, die sie abonniert haben:
Beispiel
Das folgende Beispiel zeigt, wie Pub/Sub funktioniert. Sie müssen zwei redis-cli-Clients öffnen.
In unserem Beispiel haben wir einen Abonnement-Kanal namensexampleChat erstellt:
Erster redis-cli-Client
Nachrichten werden gelesen... (Zum Beenden Ctrl-C drücken)
1) "subscribe"
2) "exampleChat"
3) (integer) 1
Jetzt starten wir einen Redis-Client neu und veröffentlichen dann zwei Nachrichten im selben Kanal exampleChat. Der Abonnent erhält die Nachrichten.
Zweiter redis-cli-Client
(integer) 1
redis 127.0.0.1:6379> PUBLISH exampleChat "Learn redis by example.com"
(integer) 1
# Der Client des Abonnenten zeigt die folgenden Nachrichten an
1) "message"
2) "exampleChat"
3) "Redis PUBLISH test"
1) "message"
2) "exampleChat"
3) "Learn redis by example.com"
Die GIF-Demonstration sieht wie folgt aus:
Starten Sie den lokalen Redis-Dienst und öffnen Sie zwei redis-cli-Clients.
Imersten redis-cli-Clientgeben SieSUBSCRIBE exampleChatein, was bedeutet: abonnieren Sie
exampleChatden Kanal.Imzweiten redis-cli-Clientgeben SiePUBLISH exampleChat "Redis PUBLISH test"ein, um eine Nachricht an den exampleChat-Kanal zu senden. Zu diesem Zeitpunkt sieht der erste redis-cli-Client die vom zweiten redis-cli-Client gesendete Testnachricht.

Redis-Pub/Sub-Befehle
Die folgende Tabelle listet gängige Redis-Pub/Sub-Befehle auf:
| Nein. | Befehl und Beschreibung |
|---|---|
| 1 | PSUBSCRIBE pattern [pattern ...] Abonnieren Sie einen oder mehrere Kanäle, die dem angegebenen Muster entsprechen. |
| 2 | PUBSUB subcommand [argument [argument ...]] Zeigen Sie den Status des Abonnement- und Veröffentlichungssystems an. |
| 3 | PUBLISH channel message Senden Sie eine Nachricht an den angegebenen Kanal. |
| 4 | PUNSUBSCRIBE [pattern [pattern ...]] Heben Sie das Abonnement für alle Kanäle auf, die dem angegebenen Muster entsprechen. |
| 5 | SUBSCRIBE channel [channel ...] Abonnieren Sie die Informationen von einem oder mehreren angegebenen Kanälen. |
| 6 | UNSUBSCRIBE [channel [channel ...]] Bezieht sich auf das Aufheben des Abonnements für den/die angegebenen Kanal/Kanäle. |