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



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow