Mit UNSUBSCRIBE abmelden
In diesem Schritt lernen Sie, wie Sie sich mit dem Befehl UNSUBSCRIBE von einem Kanal in Redis abmelden. Das Abmelden entfernt einen Client aus der Liste der Abonnenten für einen bestimmten Kanal und verhindert, dass er weitere Nachrichten empfängt, die an diesen Kanal veröffentlicht werden.
Terminal 1: Beenden des Abonnementmodus
Wechseln Sie zu Terminal 1 (wo Sie derzeit mychannel abonniert haben). Sie sollten den Abonnementstatus sehen, der "Nachrichten lesen..." (drücken Sie Strg-C zum Beenden) anzeigt.
Da sich Terminal 1 im Abonnementmodus befindet, können Sie keine regulären Redis-Befehle direkt ausführen. Um sich abzumelden, müssen Sie zuerst den Abonnementmodus beenden:
-
Drücken Sie Strg+C, um den Abonnementmodus zu beenden.
-
Sie sollten sehen, dass die redis-cli-Sitzung endet und zur Terminal-Eingabeaufforderung zurückkehrt.
-
Stellen Sie erneut eine Verbindung zu Redis her:
redis-cli
-
Jetzt können Sie den Befehl UNSUBSCRIBE ausführen (obwohl er nicht notwendig ist, da die Trennung Sie bereits abgemeldet hat):
UNSUBSCRIBE mychannel
Hinweis: Als Sie Strg+C gedrückt haben, haben Sie sich tatsächlich bereits von allen Abonnements getrennt. Der Befehl UNSUBSCRIBE wird zu Demonstrationszwecken angezeigt, aber in der Praxis meldet Sie die Trennung automatisch von allen Kanälen ab.
Die Ausgabe in Terminal 1 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.
Terminal 2: Testen der Veröffentlichung nach der Abmeldung
Wechseln Sie nun zu Terminal 2 und veröffentlichen Sie eine weitere Nachricht an mychannel:
PUBLISH mychannel "Is anyone still there?"
Die Ausgabe in Terminal 2 wird sein:
(integer) 0
Dies zeigt an, dass keine Clients die Nachricht empfangen haben, da Sie sich in Terminal 1 von dem Kanal abgemeldet haben.
Überprüfen, dass keine Nachricht empfangen wurde
Schauen Sie in Terminal 1 – Sie sollten feststellen, dass keine neue Nachricht erscheint, da Sie sich von dem Kanal abgemeldet haben.
Dies zeigt, wie das Abmelden von einem Kanal Sie daran hindert, weitere Nachrichten zu empfangen, die an diesen Kanal veröffentlicht werden, während der Publisher weiterhin Nachrichten senden kann (aber niemand sie empfängt).
Wichtig: Halten Sie beide Terminals und ihre redis-cli-Sitzungen für den nächsten Schritt aktiv.