Cómo usar Redis Pub-sub

Cómo usar Redis Pub-sub
El modelo Publish-Subscribe es un paradigma en el que los mensajes se pueden pasar a un número subjetivo de remitentes. Los remitentes del mensaje, también conocidos como suscriptores, no envían mensajes directamente a un destinatario de destino. Sin embargo, envían el mensaje a un canal donde los destinatarios, también conocidos como suscriptores, pueden acceder a ellos.

Un solo usuario puede suscribirse a múltiples canales y ver los mensajes de los editores enviados a ese canal. También pueden darse de baja del canal en cualquier momento.

Este tutorial aprenderá cómo implementar un modelo simple de publicación de suscripción utilizando Redis.

Es bueno tener en cuenta que usaremos comandos nativos de Redis y no un código personalizado en Python, Ruby, JavaScript u otros.

Comandos de Redis Pub-sub.

Al trabajar con el modelo Publish-Susscribe en Redis, entran en juego dos comandos principales:

  1. SUSCRIBIR
  2. PUBLICAR

Estos comandos son sencillos y describen la función que emprenden. Por ejemplo, el comando de suscripción se usa para suscribir a un cliente a un canal o canal específico.

El comando Publish permite que un remitente o editor envíe un mensaje a un número específico de canales.

Modelo básico de pub-sub

Este tutorial implementará un modelo simple de pub-sub para mostrar cómo funciona en Redis.

Para esto, necesitará un clúster redis en funcionamiento en su sistema.

Comience abriendo tres sesiones de terminales y lance la Redis CLI en cada una de ellas.

Una vez que tenga todos los terminales abiertos y configurados, use uno de los terminales para suscribirse a un canal.

El comando de suscripción toma el nombre del canal como argumento. La sintaxis general se puede representar como:

SUSCRIBIR

El nombre dependerá por completo de ti, y puedes nombrarlo como quieras. Por ejemplo, en el comando a continuación, nos suscribimos a un canal llamado Linuxhint.

127.0.0.1: 6379> suscribir Linuxhint
Lectura de mensajes ... (presione Ctrl-C para dejar de fumar)
1) "Suscríbete"
2) "Linuxhint"
3) (entero) 1

En el ejemplo anterior, nos suscribimos a un canal llamado Linuxhint, y podemos comenzar a recibir cualquier mensaje que se publique en ese canal.

Úselo para publicar un mensaje en el canal Linuxhint en el segundo terminal.

Use el comando publicar seguido del nombre del canal y el mensaje para publicar.

Por ejemplo:

127.0.0.1: 6379> Publicar Linuxhint "Hola, todos!"
(entero) 1

Preste atención al primer terminal y ejecute el comando anterior. Notará que el mensaje aparece automáticamente en el canal donde el usuario ha suscrito.

Una salida de ejemplo en el terminal del suscriptor es como se muestra:

1) "Mensaje"
2) "Linuxhint"
3) "Hola a todos!"

Contiene el tipo, en este caso, un mensaje, el canal y el contenido real del mensaje.

Nota: Cuando necesite publicar un mensaje, puede encerrarlo en comillas, y Redis lo tratará como un solo mensaje en lugar de argumentos de comando.

En el tercer terminal, lo usaremos para suscribirnos a múltiples canales utilizando el comando psubscribe.

El comando psubscribe toma un patrón específico y suscribe al usuario a esos canales.

Por ejemplo, para suscribirse a todos los canales que comienzan con los caracteres Linux, podemos establecer el comando como:

127.0.0.1: 6379> Psubscribe Linux*
Lectura de mensajes ... (presione Ctrl-C para dejar de fumar)
1) "Psubscribe"
2) "Linux*"
3) (entero) 1

Una vez que ejecutamos el comando anterior, si publicamos un mensaje en cualquier canal con el nombre de Linux, el suscriptor (en el terminal 3) recibirá el mensaje.

Por ejemplo, en el segundo terminal, ejecute los siguientes comandos:

127.0.0.1: 6379> Publicar Linuxuser "para canales Linuxuser"
127.0.0.1: 6379> Publicar Linuxhint "para canales Linuxhint"
127.0.0.1: 6379> Publicar LinuxCommander "para los canales de LinuxCommander"

Ahora preste atención al tercer terminal con el patrón suscribirse. Notará que el suscriptor en ese terminal recibe los tres mensajes, mientras que el de la Terminal 1 solo recibe el mensaje enviado al canal "Linuxhint".

Como puede ver, el comando Psubcribe se suscribe a canales que coinciden con un patrón específico.

Clausura

Esta guía analizó los conceptos básicos de usar el modelo Redis Publish-subscribe. Aunque la guía solo cubre los fundamentos, puede ampliarla para crear aplicaciones personalizadas en tiempo real.