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:
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.