redis
Pub / Sub
Ricerca…
introduzione
Redis fornisce un'implementazione del modello di messaggistica di pubblicazione / sottoscrizione (Pub / Sub). Invece di inviare messaggi a destinatari specifici, gli editori inviano messaggi ai destinatari interessati tramite un meccanismo indiretto. I destinatari specificano interesse in particolari messaggi. In Redis è possibile accedere a questa funzionalità utilizzando i comandi PUBLISH e SUBSCRIBE sui canali.
Sintassi
- ISCRIVITI canale [canale ...]
- UNSUBSCRIBE [canale [canale ...]]
- PUBLISH messaggio del canale
- Modello PSUBSCRIBE [modello ...]
- PUNSUBSCRIBE [modello [modello ...]]
Osservazioni
Per gestire il pub / sub in redis, è necessario avere un client per iscriversi e client diversi per la pubblicazione . Entrambi non possono essere gestiti dallo stesso cliente. Sebbene tutti gli altri comandi possano ancora essere gestiti con lo stesso client.
Pubblica e sottoscrivi con redis
Redis ha pubblicato / sottoscritto per l'invio di messaggi. Questo viene gestito sottoscrivendo un canale e pubblicando sul canale. Sì, gli abbonati si iscriveranno a uno o più canali. L'editore non deve sapere chi sono tutti gli abbonati. Invece, l'editore pubblicherà su un canale specifico. Tutti gli abbonati che sono iscritti per quel canale riceveranno il messaggio. Questo disaccoppiamento di editori e abbonati può consentire una maggiore scalabilità e una topologia di rete più dinamica.
Esempio: l' utente è abbonato a 2 canali dire foo & boo
SUBSCRIBE foo boo
Nella console di redis-client1:
127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2
Inizierà ad ascoltare il messaggio. Alla pubblicazione otterrà i dati per il canale corrispondente.
Ad esempio: quando si desidera inviare un messaggio a tutti gli abbonati che sono connessi con boo, è necessario pubblicare su quel canale.
PUBLISH boo "Hello Boo"
Nella console di redis-client1:
1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data
Per annullare l'iscrizione dal canale in qualsiasi momento, utilizzare
UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel
Può iscriversi anche in base al modello. Se il nome del canale non è sicuro / vuoi iscriverti in base al pattern, utilizza PSUBSCRIBE .
Allo stesso modo per annullare l'iscrizione in base al modello, utilizzare PUNSUBSCRIBE