redis
Pub / Sub
Suche…
Einführung
Redis bietet eine Implementierung des Nachrichtenmusters Publish / Subscribe (Pub / Sub). Anstatt Nachrichten an bestimmte Empfänger zu senden, senden Verleger Nachrichten über einen Umleitungsmechanismus an interessierte Empfänger. Empfänger geben Interesse an bestimmten Nachrichten an. In Redis wird auf diese Funktionalität mit den Befehlen PUBLISH und SUBSCRIBE für Kanäle zugegriffen.
Syntax
- SUBSCRIBE channel [channel ...]
- UNSUBSCRIBE [channel [channel ...]]
- PUBLISH-Kanalnachricht
- PSUBSCRIBE-Muster [Muster ...]
- PUNSUBSCRIBE [pattern [pattern ...]]
Bemerkungen
Um mit dem pub / sub in redis umzugehen, benötigen Sie einen Client zum Abonnieren und einen anderen Client zum Veröffentlichen . Beide können nicht von demselben Client bearbeitet werden. Alle anderen Befehle können jedoch immer noch mit demselben Client behandelt werden.
Mit redis veröffentlichen und abonnieren
Redis hat zum Versenden von Nachrichten Publizieren / Abonnieren. Dies wird durch Abonnieren eines Kanals und durch Veröffentlichen eines Kanals behandelt. Ja, Abonnenten abonnieren einen oder mehrere Kanäle. Publisher muss nicht wissen, wer alle Abonnenten sind. Der Publisher veröffentlicht stattdessen einen bestimmten Kanal. Alle Abonnenten, die diesen Kanal abonniert haben, erhalten die Nachricht. Diese Entkopplung von Herausgebern und Abonnenten kann eine höhere Skalierbarkeit und eine dynamischere Netzwerktopologie ermöglichen.
Beispiel: Der Benutzer abonniert 2 Kanäle, beispielsweise foo & boo
SUBSCRIBE foo boo
In der Konsole von redis-client1:
127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2
Die Nachricht wird abgehört. Bei Veröffentlichung werden Daten für den entsprechenden Kanal abgerufen.
Zum Beispiel: Wenn Sie eine Nachricht an alle Abonnenten senden möchten, die mit boo verbunden sind, müssen Sie auf diesem Kanal veröffentlichen.
PUBLISH boo "Hello Boo"
In der Konsole von redis-client1:
1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data
Um den Kanal an einem beliebigen Punkt abzubestellen, verwenden Sie
UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel
Kann auch nach Muster abonnieren. Wenn der Kanalname nicht sicher ist / basierend auf Muster abonniert werden soll, verwenden Sie PSUBSCRIBE .
Ähnlich wie beim Abmelden basierend auf Muster verwenden Sie PUNSUBSCRIBE