Redis
 sql >> Base de données >  >> NoSQL >> Redis

Publier s'abonner avec nodejs et redis(node_redis)

Je ne sais pas quelle est votre conception, mais vous pouvez vous abonner avec un client Redis sur plusieurs canaux (après vous être abonné avec le client, vous ne pouvez vous abonner qu'à un autre canal ou vous désabonner dans cette connexion :http://redis.io/commands /subscribe), car après avoir reçu le message, vous disposez d'informations complètes sur le canal d'où provient ce message. Ensuite, vous pouvez diffuser ce message à tous les clients intéressés.

Cela m'a un peu aidé, car je pouvais mettre le type de message dans le nom du canal, puis choisir dynamiquement une action pour chaque message à partir d'une petite fonction, au lieu de générer un abonnement séparé pour chaque canal avec une logique distincte.

À l'intérieur de mon serveur node.js, je n'ai que 2 clients redis :

  1. client simple pour toutes les actions standard - lpush , sadd et ainsi de suite
  2. client d'abonnement - qui écoute les messages sur les canaux auxquels vous êtes abonné, puis ces messages sont distribués à toutes les sessions (stockés sous forme d'ensembles pour chaque type de canal) à l'aide du premier client redis.