Se stai usando la funzionalità redis pub/sub all'interno del tuo programma node.js dovresti dedicare una connessione client redis per l'ascolto su alcuni canali e una seconda connessione client redis per inviare comandi normali e/o pubblicare messaggi ai tuoi canali. Da node_redis docs:
Quando un client emette un ABBONAMENTO o un PSUBSCRIBE, tale connessione viene messa in modalità "pub/sub". A quel punto sono validi solo i comandi che modificano il set di abbonamenti. Quando il set di abbonamenti è vuoto, la connessione viene ripristinata in modalità normale.
Se hai bisogno di inviare comandi regolari a Redis mentre sei in modalità pub/sub, apri un'altra connessione.
Il tuo problema è anche correlato a queste domande:
- Redis/Node.js - 2 client (1 pub/sub) che causano problemi con le scritture
- Perché non posso avere un singolo client Redis che funge da PUB e Sub nella stessa connessione?