redis
Pub / Sub
Buscar..
Introducción
Redis proporciona una implementación del patrón de mensajería de publicación / suscripción (publicación / suscripción). En lugar de enviar mensajes a receptores específicos, los editores envían mensajes a receptores interesados a través de algún mecanismo de direccionamiento indirecto. Los receptores especifican el interés en mensajes particulares. En Redis se accede a esta funcionalidad utilizando los comandos PUBLISH y SUBSCRIBE en los canales.
Sintaxis
- SUSCRIBIRSE canal [canal ...]
- UNSUBSCRIBE [canal [canal ...]]
- PUBLICAR mensaje de canal
- Patrón de PSUBSCRIBE [patrón ...]
- PUNSUBSCRIBE [patrón [patrón ...]]
Observaciones
Para manejar el pub / sub en redis, necesita tener un cliente para suscribirse y otro cliente para publicar . Ambos no pueden ser manejados por el mismo cliente. Aunque todos los demás comandos se pueden manejar con el mismo cliente.
Publicar y suscribirse con redis
Redis tiene publicación / suscripción para enviar mensajes. Esto se maneja suscribiéndose a un canal y publicando en el canal. Sí, los suscriptores se suscribirán a uno o más canales. El editor no necesita saber quiénes son todos suscriptores. En su lugar, el editor publicará en un canal específico. Todos los suscriptores que están suscritos a ese canal recibirán el mensaje. Este desacoplamiento de editores y suscriptores puede permitir una mayor escalabilidad y una topología de red más dinámica.
Ejemplo: el usuario se está suscribiendo a 2 canales, digamos foo & boo
SUBSCRIBE foo boo
En la consola de redis-client1:
127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2
Comenzará a escuchar el mensaje. En la publicación obtendremos datos para el canal correspondiente.
Por ejemplo: cuando desee enviar un mensaje a todos los suscriptores que están conectados con boo, debe publicar en ese canal.
PUBLISH boo "Hello Boo"
En la consola de redis-client1:
1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data
Para cancelar la suscripción del canal en cualquier momento, use
UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel
Puede suscribirse basado en el patrón también. Cuando el nombre del canal no está seguro / desea suscribirse según el patrón, use PSUBSCRIBE .
Al igual que anular la suscripción basado en el uso de patrones PUNSUBSCRIBE