Redis ne garde pas les messages en mémoire dans le contexte Pub/Sub comme vous pouvez le voir dans l'implémentation (x) :
- le message est envoyé aux clients qui écoutent ce canal (le cas échéant),
- le message est envoyé aux clients qui écoutent les chaînes correspondantes (le cas échéant).
Ensuite, Redis renvoie simplement le nombre de clients qui ont reçu le message (en gardant à l'esprit qu'un client peut recevoir un même message plusieurs fois, par exemple si plusieurs modèles correspondent).
S'il n'y a pas de client abonné, Redis renvoie simplement 0 et le message n'est pas enregistré/mis en mémoire tampon :
> publish foo test
(integer) 0
(x) Redis parcourt en gros la liste des clients abonnés et envoie une réponse avec le message.