Ce face PUBLISH
PUBLISH livrează mesajul imediat tuturor clienților abonați la canal cu SUBSCRIBE (sau la un tipar potrivit cu PSUBSCRIBE). Redis nu păstrează mesajul: dacă nimeni nu ascultă, mesajul se pierde.
Pub/Sub este potrivit pentru notificări în timp real (invalidarea unui cache, „utilizatorul X e online”). Pentru mesaje care nu au voie să se piardă, folosește Redis Streams.
Parametri
| Parametru | Descriere |
|---|---|
channel |
Numele canalului. |
message |
Textul mesajului. |
Ce returnează
Un (integer): câți clienți au primit mesajul. În Redis Cluster se numără doar clienții de pe nodul curent.
Exemple
Exemplul 1: Notificare de livrare
Doi clienți erau abonați la canal, apoi niciunul.
PUBLISH notificari "Comanda 1042 a fost livrata"
PUBLISH notificari "Comanda 1043 a fost livrata"
Ieșire în redis-cli
127.0.0.1:6379> PUBLISH notificari "Comanda 1042 a fost livrata"
(integer) 2
127.0.0.1:6379> PUBLISH notificari "Comanda 1043 a fost livrata"
(integer) 0
Greșeli frecvente
- Un rezultat 0 nu e o eroare: înseamnă doar că nimeni nu asculta. Mesajul nu va fi livrat mai târziu.
- Canalele Pub/Sub nu sunt chei: nu apar la
KEYS/SCAN. Le vezi cuPUBSUB CHANNELS.
Comenzi înrudite
SUBSCRIBE / PSUBSCRIBE: Abonează clientul la unul sau mai multe canale Pub/Sub (SUBSCRIBE) sau la canale după un tipar (PSUBSCRIBE).XADD: Adaugă un eveniment (o intrare cu câmpuri și valori) la finalul unui stream Redis și întoarce ID-ul lui.XREAD: Citește intrări noi din unul sau mai multe stream-uri, după un ID dat, opțional așteptând (BLOCK) până apar date.