Heim > Datenbank > Redis > Einführung und Implementierung der Publish- und Subscribe-Funktion von Redis

Einführung und Implementierung der Publish- und Subscribe-Funktion von Redis

WBOY
Freigeben: 2023-05-10 20:55:34
Original
2643 Leute haben es durchsucht

Redis ist ein beliebtes Open-Source-In-Memory-Datenstrukturspeichersystem, das eine Vielzahl von Datenstrukturen unterstützt, darunter Zeichenfolgen, Hashes, Listen, Mengen und geordnete Mengen. Zusätzlich zu diesen grundlegenden Datenstrukturen bietet Redis auch viele erweiterte Funktionen, darunter die Veröffentlichungs- und Abonnementfunktion. In diesem Artikel wird die Veröffentlichungs- und Abonnementfunktion von Redis vorgestellt, einschließlich ihrer Grundprinzipien und wie sie in Redis implementiert wird.

1. Die Grundprinzipien von Redis Veröffentlichen und Abonnieren

Veröffentlichen und Abonnieren ist ein Nachrichtenmodell, bei dem der Herausgeber Nachrichten nicht direkt an Abonnenten, sondern an einen Kanal sendet ( Kanal), um Nachrichten zu senden. Abonnenten hören sich bestimmte Kanäle an, um von Herausgebern gesendete Nachrichten zu erhalten. In Redis heißt dieses Modell Publish-Subscribe.

In Redis senden Herausgeber Nachrichten an bestimmte Kanäle, und diese Kanäle werden von Abonnenten abonniert. Wenn ein Herausgeber eine Nachricht an einen Kanal sendet, erhalten alle Abonnenten des Kanals die Nachricht. Dieses Modell ist nützlich für Anwendungen mit hohen Echtzeitanforderungen, wie z. B. Chatrooms und Echtzeit-Datenanalyse.

2. Implementierung von Redis Publish and Subscribe

Redis bietet mehrere Befehle zur Unterstützung des Publish and Subscribe-Modells. Werfen wir einen Blick auf die Verwendung und spezifische Implementierung dieser Befehle.

  1. PUBLISH-Befehl

PUBLISH-Befehl wird verwendet, um Nachrichten an den angegebenen Kanal zu senden. Die Syntax lautet wie folgt:

Kanalnachricht VERÖFFENTLICHEN

wobei Kanal der Name des Kanals und Nachricht die zu sendende Nachricht ist. Um beispielsweise eine Nachricht an einen Kanal namens „News“ zu senden, würden Sie den folgenden Befehl verwenden:

Nachrichten VERÖFFENTLICHEN „Hallo Welt!“

  1. Der Befehl SUBSCRIBE

SUBSCRIBE wird zum Abonnieren eines oder mehrerer Kanäle verwendet. Die Syntax lautet wie folgt:

Kanal ABONNIEREN [Kanal …]

Um beispielsweise zwei Kanäle mit den Namen „Nachrichten“ und „Wetter“ zu abonnieren, können Sie Folgendes verwenden Befehl:

Nachrichtenwetter ABONNIEREN

Wenn eine neue Nachricht auf einem abonnierten Kanal veröffentlicht wird, sendet Redis die Nachricht an den Abonnenten und der Abonnent kann die Nachricht verarbeiten.

  1. UNSUBSCRIBE-Befehl

UNSUBSCRIBE-Befehl wird verwendet, um sich von einem oder mehreren Kanälen abzumelden. Die Syntax lautet wie folgt:

UNSUBSCRIBE [Kanal [Kanal …]]

Um sich beispielsweise von einem Kanal mit dem Namen „News“ abzumelden, können Sie den folgenden Befehl verwenden: #🎜🎜 #

Nachrichten ABONNIEREN

Wenn sich ein Abonnent von einem Kanal abmeldet, sendet Redis ihm keine Nachrichten mehr für diesen Kanal.

    PSUBSCRIBE-Befehl
PSUBSCRIBE-Befehl wird verwendet, um einen oder mehrere Kanäle über Muster zu abonnieren. Die Syntax lautet wie folgt:

PSUBSCRIBE Muster [Muster …]

wobei Muster ein Platzhalterausdruck ist. „news.*“ kann beispielsweise mit Namen übereinstimmen, die mit „news“ beginnen .“ aller Kanäle.

    PUNSUBSCRIBE-Befehl
PUNSUBSCRIBE-Befehl wird verwendet, um einen oder mehrere über das Muster abonnierte Kanäle zu stornieren. Die Syntax lautet wie folgt:

PUNSUBSCRIBE [pattern [pattern …]]

Zum Abmelden können Sie sich beispielsweise über Muster mit den Namen „news.

“ und „weather“ abmelden. "-Kanal können Sie den folgenden Befehl verwenden:

PUNSUBSCRIBE news.

Weather.

Wenn ein Abonnent den Kanal abonniert Mithilfe des Musters gleicht Redis alle Kanalnamen ab, die den Platzhalterausdruck erfüllen, und sendet dann Nachrichten für diese Kanäle an Abonnenten.

3. Beispiel für Redis-Veröffentlichung und -Abonnement

Das Folgende ist ein einfaches Beispiel, um zu demonstrieren, wie das Redis-Veröffentlichungs- und -Abonnementmodell verwendet wird.

    Öffnen Sie zwei Konsolenfenster und stellen Sie jeweils eine Verbindung zum Redis-Server her:
redis-cli

#🎜 🎜 # Verwenden Sie den Befehl ABONNIEREN im ersten Fenster, um den Kanal mit dem Namen „Nachrichten“ zu abonnieren:
  1. Nachrichten ABONNIEREN

im zweiten Fenster. Verwenden Sie den Befehl VERÖFFENTLICHEN im Fenster, um eine Nachricht an den Kanal mit dem Namen „Nachrichten“ zu senden:
  1. Nachrichten VERÖFFENTLICHEN „Hallo Welt!“

in Im ersten Fenster sehen Sie, dass die Nachricht eingegangen ist:
  1. 1) „Nachricht“
2) „Nachrichten“

3) „Hallo, Welt!“

In diesem Beispiel erstellen wir einen Abonnenten für einen Kanal namens „news“ und verwenden dann den PUBLISH-Befehl in einem anderen Fenster, um eine Nachricht an den Kanal zu senden. Nachdem der Abonnent die Nachricht erhalten hat, drucken Sie sie auf der Konsole aus.

Fazit

In diesem Artikel wird die Veröffentlichungs- und Abonnementfunktion von Redis vorgestellt, einschließlich ihrer Grundprinzipien und Implementierungsmethoden in Redis. Im Vergleich zu anderen Nachrichtenwarteschlangen ist die Veröffentlichungs- und Abonnementfunktion von Redis sehr einfach, leicht zu verwenden und zu implementieren und bietet die Vorteile eines hohen Durchsatzes und einer geringen Latenz. Mithilfe der Publish-Subscribe-Funktionalität von Redis können Sie problemlos leistungsstarke Echtzeitanwendungen wie Chatrooms, Echtzeit-Datenverarbeitung usw. erstellen.

Das obige ist der detaillierte Inhalt vonEinführung und Implementierung der Publish- und Subscribe-Funktion von Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage