Redis
 sql >> Database >  >> NoSQL >> Redis

Redis, un argomento (pub/sub) sarà sempre consegnato ad almeno un abbonato?

Pub/Sub è una comunicazione sincrona. Tutte le parti devono essere attive contemporaneamente per poter comunicare. Qui Redis è un puro broker di messaggistica sincrona.

La risposta alle tue prime tre domande è no. Non c'è persistenza dei messaggi, né su disco, né in memoria. Quando un messaggio viene pubblicato, viene inviato alle connessioni client sottoscritte al momento. Il comando PUBLISH restituirà immediatamente il numero di client che hanno ricevuto il messaggio:O(N+M) dove N è il numero di client iscritti al canale ricevente e M è il numero totale di pattern iscritti (da qualsiasi client).

... ma sto notando che se sono inattivo e mi riconnetto posso ricevere gli argomenti quando torno online

R/ Immagino dipenda da cosa intendi con "Sono giù ". Il messaggio deve essere stato memorizzato nella cache da qualche parte nel tuo cliente. O forse la connessione del client nel server Redis era ancora attiva e il messaggio era presente nel buffer di output del client.

Potresti trovare utili queste risorse:

Quali sono le principali differenze tra Redis Pub/Sub e Redis Stream?

Pub/Sub