Come usare Redis Pub-Sub

Come usare Redis Pub-Sub
Il modello Publish-Subscriture è un paradigma in cui i messaggi possono essere passati a un numero soggettivo di mittenti. I mittenti del messaggio, noto anche come abbonati, non inviano messaggi direttamente a un destinatario di destinazione. Tuttavia, inviano il messaggio a un canale in cui i destinatari, noti anche come abbonati, possono accedervi.

Un singolo utente può iscriversi a più canali e visualizzare i messaggi degli editori inviati a quel canale. Possono anche annullare l'iscrizione al canale in qualsiasi momento.

Questo tutorial imparerà come implementare un semplice modello di iscrizione a pubblicazione utilizzando Redis.

È bene notare che useremo i comandi nativi Redis e non un codice personalizzato in Python, Ruby, JavaScript o altri.

Comandi di Redis Pub-Sub.

Quando si lavora con il modello di iscrizione a pubblicazione in Redis, entrano in gioco due comandi principali:

  1. SOTTOSCRIVI
  2. PUBBLICARE

Questi comandi sono semplici e descrivono la funzione che intraprendono. Ad esempio, il comando di iscrizione viene utilizzato per iscrivere un client a un canale o un canale specifico.

Il comando di pubblicazione consente a un mittente o editore di inviare un messaggio a un numero specifico di canali.

Modello di base pub-sub

Questo tutorial implementerà un semplice modello pub-sub per mostrare come funziona in Redis.

Per questo, avrai bisogno di un cluster Redis attivo e in esecuzione sul tuo sistema.

Inizia aprendo tre sessioni terminali e lancia la CLI Redis in ciascuno di essi.

Una volta aperti e impostato tutti i terminali, usa uno dei terminali per iscriverti a un canale.

Il comando di iscrizione prende il nome del canale come argomento. La sintassi generale può essere rappresentata come:

SOTTOSCRIVI

Il nome dipenderà interamente da te e puoi nominarlo come vuoi. Ad esempio, nel comando seguente, ci iscriviamo a un canale chiamato Linuxhint.

127.0.0.1: 6379> Iscriviti a Linuxhint
Lettura dei messaggi ... (premere Ctrl-C per smettere)
1) "Iscriviti"
2) "Linuxhint"
3) (intero) 1

Nell'esempio sopra, ci iscriviamo a un canale chiamato Linuxhint e possiamo iniziare a ricevere eventuali messaggi pubblicati su quel canale.

Usalo per pubblicare un messaggio sul canale Linuxhint nel secondo terminale.

Usa il comando di pubblicazione seguito dal nome del canale e dal messaggio da pubblicare.

Per esempio:

127.0.0.1: 6379> Pubblica Linuxhint "Ciao, tutti!"
(intero) 1

Presta attenzione al primo terminale ed esegui il comando sopra. Noterai che il messaggio appare automaticamente sul canale in cui l'utente si è iscritto.

Un output di esempio sul terminale degli abbonati è come mostrato:

1) "Messaggio"
2) "Linuxhint"
3) "Ciao, tutti!"

Contiene il tipo, in questo caso, un messaggio, il canale e il contenuto effettivo del messaggio.

Nota: quando è necessario pubblicare un messaggio, puoi racchiuderlo tra virgolette e Redis lo tratterà come un singolo messaggio anziché come argomenti di comando.

Nel terzo terminale, lo useremo per iscriverti a più canali utilizzando il comando PSUBSCRIZIONE.

Il comando PSUBScripSta prende uno schema specifico e abbona l'utente a tali canali.

Ad esempio, per iscriverti a tutti i canali che iniziano con i caratteri Linux, possiamo impostare il comando come:

127.0.0.1: 6379> Psubscrip Linux*
Lettura dei messaggi ... (premere Ctrl-C per smettere)
1) "Psubscriture"
2) "Linux*"
3) (intero) 1

Una volta eseguito il comando sopra, se pubblichiamo un messaggio su qualsiasi canale con il nome Linux, l'abbonato (in Terminal 3) riceverà il messaggio.

Ad esempio, nel secondo terminale, eseguire i seguenti comandi:

127.0.0.1: 6379> Pubblica Linuxuser "per i canali Linuxuser"
127.0.0.1: 6379> Pubblica Linuxhint "per i canali Linuxhint"
127.0.0.1: 6379> Pubblica LinuxMander "per i canali LinuxMander"

Ora presta attenzione al terzo terminal con il modello di iscrizione. Noterai che l'abbonato in quel terminale riceve tutti e tre i messaggi mentre quello nel terminale 1 riceve solo il messaggio inviato al canale "Linuxhint".

Come puoi vedere, il comando PSubrize si iscrive a canali che corrispondono a uno schema specifico.

Chiusura

Questa guida ha esaminato le basi dell'utilizzo del modello Redis Publish-Subscriture. Sebbene la guida copra solo i fondamenti, è possibile espanderlo per creare applicazioni personalizzate in tempo reale.