Jak używać Redis pub-sub

Jak używać Redis pub-sub
Model publikacji Subskrypcji to paradygmat, w którym wiadomości mogą być przekazywane do subiektywnej liczby nadawców. Nadawcy wiadomości, znani również jako subskrybenci, nie wysyłają wiadomości bezpośrednio do docelowego odbiorcy. Jednak wysyłają wiadomość do kanału, w którym odbiorcy, znani również jako subskrybenci, mogą do nich uzyskać dostęp.

Jeden użytkownik może subskrybować wiele kanałów i wyświetlić wiadomości wydawców wysyłane na ten kanał. Mogą również zrezygnować z kanału w dowolnym momencie.

Ten samouczek dowie się, jak wdrożyć prosty model publikowania subskrypcji za pomocą Redis.

Warto zauważyć, że użyjemy natywnych poleceń Redis, a nie niestandardowego kodu w Python, Ruby, JavaScript lub innych.

Polecenia Redis pub-sub.

Podczas pracy z modelem publikacji Subskrypcji w Redis w grę wchodzą dwa główne polecenia:

  1. SUBSKRYBUJ
  2. PUBLIKOWAĆ

Te polecenia są proste i opisują funkcję, którą podejmują. Na przykład polecenie subskrypcji służy do subskrypcji klienta do określonego kanału lub kanału.

Polecenie Publish pozwala nadawcy lub wydawcy wysłać wiadomość do określonej liczby kanałów.

Podstawowy model PUB-SUB

Ten samouczek wdroży prosty model PUB-SUB, aby pokazać, jak działa w Redis.

W tym celu będziesz potrzebować klastra Redis uruchomionego w systemie.

Zacznij od otwarcia trzech sesji terminali i uruchom Redis CLI w każdym z nich.

Po otwarciu i skonfigurowania wszystkich terminali użyj jednego z terminali, aby zasubskrybować kanał.

Polecenie subskrypcji bierze nazwę kanału jako argument. Ogólna składnia może być reprezentowana jako:

SUBSKRYBUJ

Nazwa będzie całkowicie od ciebie zależeć i możesz to nazwać, co chcesz. Na przykład w poniższym poleceniu subskrybujemy kanał o nazwie Linuxhint.

127.0.0.1: 6379> Subskrybuj Linuxhint
Czytanie wiadomości… (Naciśnij Ctrl-C, aby rzucić)
1) „Subskrybuj”
2) „Linuxhint”
3) (liczba całkowita) 1

W powyższym przykładzie subskrybujemy kanał o nazwie Linuxhint i możemy zacząć odbierać wszelkie wiadomości publikowane na tym kanale.

Użyj go do opublikowania wiadomości do kanału Linuxhint w drugim terminalu.

Użyj polecenia publikacji, a następnie nazwy kanału i wiadomości do opublikowania.

Na przykład:

127.0.0.1: 6379> Publikuj Linuxhint „Witaj, wszyscy!"
(liczba całkowita) 1

Zwróć uwagę na pierwszy terminal i wykonaj powyższe polecenie. Zauważysz, że komunikat automatycznie pojawia się na kanale, w którym użytkownik subskrybował.

Przykładowe dane wyjściowe na terminalu subskrybenta jest jak pokazano:

1) „Wiadomość”
2) „Linuxhint”
3) „Witaj, wszyscy!"

Zawiera typ, w tym przypadku, komunikat, kanał i rzeczywistą treść wiadomości.

UWAGA: Kiedy musisz opublikować wiadomość, możesz ją załatwić w cudzysłowie, a Redis będzie traktował go jako pojedynczą wiadomość, a nie argumenty dowodzenia.

W trzecim terminalu użyjemy go do subskrypcji wielu kanałów za pomocą polecenia PSUBSCIP.

Polecenie PSUBSCIPS bierze określony wzór i subskrybuje użytkownika do tych kanałów.

Na przykład, aby zasubskrybować wszystkie kanały, które zaczynają się od znaków Linux, możemy ustawić polecenie jako:

127.0.0.1: 6379> PSUBSCIP LINUX*
Czytanie wiadomości… (Naciśnij Ctrl-C, aby rzucić)
1) „Psubscribe”
2) „Linux*”
3) (liczba całkowita) 1

Po uruchomieniu powyższego polecenia, jeśli opublikujemy wiadomość na dowolnym kanale z nazwą Linux, subskrybent (w terminalu 3) otrzyma wiadomość.

Na przykład w drugim terminalu wykonaj następujące polecenia:

127.0.0.1: 6379> Publikuj Linuxuser „dla kanałów Linuxuser”
127.0.0.1: 6379> Publikuj Linuxhint „dla kanałów Linuxhint”
127.0.0.1: 6379> Publikuj LinuxCommander „For LinuxCommander Channels”

Teraz zwróć uwagę na trzeci terminal z subskrybowaniem wzorca. Zauważysz, że subskrybent w tym terminalu odbiera wszystkie trzy wiadomości, podczas gdy jeden w terminalu 1 odbiera tylko wiadomość wysłaną do kanału „Linuxhint”.

Jak widać, polecenie PSUBIBRIP Subskrybuje kanały, które pasują do określonego wzoru.

Zamknięcie

Ten przewodnik obejrzał podstawy korzystania z modelu publikacji Redis Subskrypcji. Chociaż przewodnik obejmuje tylko podstawy, możesz je rozwinąć, aby tworzyć niestandardowe aplikacje w czasie rzeczywistym.