Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redis, un sujet (pub/sub) sera-t-il toujours livré à au moins un abonné ?

Pub/Sub est une communication synchrone. Toutes les parties doivent être actives en même temps pour pouvoir communiquer. Ici, Redis est un pur courtier de messagerie synchrone.

La réponse à vos trois premières questions est non. Il n'y a pas de persistance des messages, ni en disque, ni en mémoire. Lorsqu'un message est publié, il est envoyé aux connexions clientes souscrites à ce moment. La commande PUBLISH renverra immédiatement le nombre de clients qui ont reçu le message :O(N+M) où N est le nombre de clients abonnés au canal de réception et M est le nombre total de modèles abonnés (par n'importe quel client).

... mais je remarque que si je suis en panne et que je me reconnecte, je peux recevoir les sujets lorsque je me reconnecte

R/ Je suppose que cela dépend de ce que vous entendez par "Je suis en panne ". Le message doit avoir été caché quelque part dans votre client. Ou peut-être que la connexion client dans Redis Server était toujours active et que le message était là dans le tampon de sortie client.

Ces ressources peuvent vous être utiles :

Quelles sont les principales différences entre Redis Pub/Sub et Redis Stream ?

Pub/Sub