Nous savons que KEYS
commande le bloc serveur Redis et doit utiliser les commandes *SCAN
à la place. Si je comprends bien, le serveur Redis peut gérer beaucoup de connexions pubsub. Donc, si j'appelle PUBSUB CHANNELS
commande sur un tel serveur peut-il gérer des connexions pubsub ou gérer d'autres commandes lors de l'exécution de cette commande?La commande PUBSUB CHANNELS bloque-t-elle le serveur Redis?
0
A
Répondre
0
Redis est un filetage unique. Il peut avoir un nombre quelconque de clients, mais les commandes qui sont exécutées sont un seul thread (un par un).
Dans PUBSUB, vous êtes abonné à un client qui conservera la connexion au serveur. Lorsque vous publiez un message, celui-ci est transmis à tous les canaux auxquels vous êtes abonné. Il s'agit donc d'un appel unique qui publie sur tous les canaux de cet appel. Donc, si vous avez plusieurs clients (disons un million) qui s'abonnent à un seul canal, il faudra du temps pour publier sur tous ces clients, alors oui c'est bloquant. Notez également que le blocage se produira uniquement pendant l'action de publication.
Espérons que cela répond à votre question.