sql >> Base de Datos >  >> NoSQL >> Redis

Publicar suscripción con nodejs y redis (node_redis)

No sé cuál es su diseño, pero puede suscribirse con un cliente de redis en varios canales (después de suscribirse con el cliente, solo puede suscribirse a otro canal o darse de baja dentro de esta conexión:http://redis.io/commands /subscribe), porque después de recibir el mensaje, tiene información completa de qué canal proviene este mensaje. Luego puede distribuir este mensaje a todos los clientes interesados.

Esto me ayudó un poco, porque podía poner el tipo de mensaje en el nombre del canal y luego elegir dinámicamente la acción para cada mensaje desde una función pequeña, en lugar de generar una suscripción separada para cada canal con una lógica separada.

Dentro de mi servidor node.js solo tengo 2 clientes redis:

  1. cliente simple para todas las acciones estándar - lpush , sadd y así sucesivamente
  2. cliente de suscripción:que escucha los mensajes en los canales suscritos, luego estos mensajes se distribuyen a todas las sesiones (almacenados como conjuntos para cada tipo de canal) utilizando el primer cliente redis.