PUBLISH în Redis & In-Memory Data Store

Trimite un mesaj pe un canal Pub/Sub tuturor clienților abonați în acel moment.

Sintaxă comandă
PUBLISH channel message

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 cu PUBSUB 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.