Wenn Sie die Redis-Pub/Sub-Funktionalität in Ihrem node.js-Programm verwenden, sollten Sie eine Redis-Client-Verbindung für das Abhören eines Kanals und eine zweite Redis-Client-Verbindung für das Senden normaler Befehle und/oder das Veröffentlichen von Nachrichten an Ihren Kanal bzw. Ihre Kanäle dedizieren. Aus den node_redis-Dokumenten:
Wenn ein Client ein SUBSCRIBE oder PSUBSCRIBE ausgibt, wird diese Verbindung in den "Pub/Sub"-Modus versetzt. An diesem Punkt sind nur Befehle gültig, die den Abonnementsatz ändern. Wenn der Abonnementsatz leer ist, wird die Verbindung wieder in den regulären Modus versetzt.
Wenn Sie im Pub/Sub-Modus reguläre Befehle an Redis senden müssen, öffnen Sie einfach eine andere Verbindung.
Ihr Problem hängt auch mit diesen Fragen zusammen:
- Redis / Node.js - 2 Clients (1 Pub/Sub) verursachen Probleme mit Schreibvorgängen
- Warum kann ich nicht einen einzelnen Redis-Client haben, der in derselben Verbindung als PUB und Sub fungiert?