Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Redis, wird ein Thema (Pub/Sub) immer an mindestens einen Abonnenten geliefert?

Pub/Sub ist synchrone Kommunikation. Alle Parteien müssen gleichzeitig aktiv sein, um kommunizieren zu können. Hier ist Redis ein reiner synchroner Messaging-Broker.

Die Antwort auf Ihre ersten drei Fragen lautet nein. Es gibt keine Persistenz der Nachrichten, weder auf der Festplatte noch im Speicher. Wenn eine Nachricht veröffentlicht wird, wird sie an die derzeit abonnierten Client-Verbindungen gesendet. Der PUBLISH-Befehl gibt sofort die Anzahl der Clients zurück, die die Nachricht erhalten haben:O(N+M), wobei N die Anzahl der Clients ist, die den Empfangskanal abonniert haben, und M die Gesamtzahl der abonnierten Muster (von jedem Client).

... aber ich stelle fest, dass ich die Themen geliefert bekommen kann, wenn ich offline bin und mich wieder verbinde, wenn ich wieder online gehe

R/ Ich schätze, es kommt darauf an, was Sie mit "Ich bin am Boden" meinen ". Die Nachricht muss zwischengespeichert worden sein irgendwo in Ihrem Client. Oder vielleicht war die Client-Verbindung in Redis Server noch aktiv und die Nachricht war dort im Client-Ausgabepuffer.

Möglicherweise finden Sie diese Ressourcen hilfreich:

Was sind die Hauptunterschiede zwischen Redis Pub/Sub und Redis Stream?

Pub/Sub