Redis utilise un dict
, même structure que pour les clés, pour stocker les abonnements aux chaînes, à la fois par client et pour tous les clients (conserve un hachage par abonnement avec une liste des clients abonnés), donc jusqu'à 2^32 abonnements aux chaînes au total.
Il utilise une liste pour stocker les abonnements aux modèles par client, il n'est donc théoriquement limité que par la mémoire de nœud disponible.
Cependant, en général, vous pouvez avoir des canaux infinis. Considérez un canal comme une étiquette lorsqu'un message est publié. Les messages ne sont jamais stockés. Lorsque le message est publié, Redis recherche les clients abonnés à ce canal et teste chaque modèle d'abonnement. Le canal n'existe réellement que pendant la publication du message.
Comme il existe des modèles d'abonnement, il existe un nombre illimité de canaux "logiques".
Juste dans les notifications d'événements, nous avons 2^32 * bases de données * types d'événements clés possibles canaux "logiques".
Concernant le nombre d'abonnés et d'éditeurs, il est limité par le maxclients
réglage, 10 000 par défaut. Il n'y a pas de limite pour les abonnés et les éditeurs, mais la limite maximale de clients (connexions) s'applique.
Comme indiqué par @Roman, il existe des limitations de tampon, mais cela se réfère principalement au débit (traitement des messages).