Redis
 sql >> Database >  >> NoSQL >> Redis

Pubblica iscriviti con nodejs e redis(node_redis)

Non so qual è il tuo design, ma puoi iscriverti con un client redis su più canali (dopo esserti iscritto con il client, puoi iscriverti solo ad un altro canale o annullare l'iscrizione all'interno di questa connessione:http://redis.io/commands /subscribe), perché dopo aver ricevuto il messaggio, hai tutte le informazioni sul canale da cui proviene questo messaggio. Quindi puoi distribuire questo messaggio a tutti i clienti interessati.

Questo mi ha aiutato un po', perché potevo inserire il tipo di messaggio nel nome del canale e quindi scegliere dinamicamente l'azione per ogni messaggio da una piccola funzione, invece di generare iscrizioni separate per ogni canale con una logica separata.

All'interno del mio server node.js ho solo 2 client redis:

  1. client semplice per tutte le azioni standard - lpush , sadd e così via
  2. client di sottoscrizione - che ascolta i messaggi sui canali a cui si è iscritti, quindi questi messaggi vengono distribuiti a tutte le sessioni (memorizzati come set per ogni tipo di canale) utilizzando il primo client redis.