Mensajería Pub/Sub de Redis

RedisRedisBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, explorarás el sistema de mensajería Pub/Sub de Redis. Aprenderás cómo suscribirte a canales, publicar mensajes y cancelar la suscripción. Este laboratorio te guiará a través de las operaciones fundamentales utilizando los comandos SUBSCRIBE, PUBLISH, UNSUBSCRIBE y PSUBSCRIBE.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552102{{"Mensajería Pub/Sub de Redis"}} end

Suscribirse a un Canal con SUBSCRIBE

En este paso, aprenderás cómo suscribirte a un canal en Redis utilizando el comando SUBSCRIBE. Suscribirte a un canal te permite recibir mensajes publicados en ese canal. Este es un concepto fundamental en el sistema de mensajería Pub/Sub de Redis.

Primero, abre una terminal. Puedes usar la terminal Xfce proporcionada en el entorno LabEx.

Ahora, conéctate al servidor Redis utilizando el comando redis-cli:

redis-cli

Deberías ver el prompt de Redis: 127.0.0.1:6379>.

A continuación, suscríbete a un canal llamado mychannel utilizando el comando SUBSCRIBE:

SUBSCRIBE mychannel

La salida será similar a esta:

Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mychannel"
3) (integer) 1

Analicemos la salida:

  • "subscribe": Esto indica que te has suscrito correctamente a un canal.
  • "mychannel": Este es el nombre del canal al que te has suscrito.
  • (integer) 1: Este es el número de canales a los que estás suscrito actualmente.

Es importante mantener esta terminal abierta y suscrita al canal. Usaremos otra terminal para publicar mensajes.

Ahora, sal del redis-cli en esta terminal. Esto es importante para que el historial de comandos se registre correctamente. Presiona Ctrl+C para detener la suscripción, luego escribe exit y presiona Enter.

exit

Publicar Mensajes con PUBLISH

En este paso, aprenderás cómo publicar mensajes en un canal en Redis utilizando el comando PUBLISH. Publicar mensajes es la funcionalidad central del sistema Pub/Sub, que te permite enviar datos a todos los suscriptores de un canal específico.

Abre una nueva terminal. Puedes usar la terminal Xfce proporcionada.

Conéctate al servidor Redis utilizando el comando redis-cli:

redis-cli

Deberías ver el prompt de Redis: 127.0.0.1:6379>.

Ahora, publica un mensaje en el canal mychannel utilizando el comando PUBLISH:

PUBLISH mychannel "Hello, Redis!"

La salida será el número de clientes que recibieron el mensaje:

(integer) 1

En este caso, la salida es (integer) 1 porque te suscribiste a mychannel en el paso anterior. Si no te hubieras suscrito, la salida sería (integer) 0.

Ahora, sal del redis-cli en esta terminal.

exit

Vuelve a la primera terminal (donde te suscribiste a mychannel en el Paso 1). Deberías ver el mensaje que acabas de publicar. Si cerraste esa terminal, deberás abrir una nueva terminal y volver a suscribirte a mychannel utilizando el comando SUBSCRIBE mychannel.

redis-cli
SUBSCRIBE mychannel

Mantén esta terminal abierta y suscrita.

Anular la Suscripción con UNSUBSCRIBE

En este paso, aprenderás cómo anular la suscripción (unsubscribe) a un canal en Redis utilizando el comando UNSUBSCRIBE. Anular la suscripción elimina a un cliente de la lista de suscriptores de un canal específico, evitando que reciba más mensajes publicados en ese canal.

Continuando desde los pasos anteriores, deberías tener una terminal abierta y suscrita a mychannel.

En esa terminal, ejecuta el siguiente comando para anular la suscripción al canal mychannel:

UNSUBSCRIBE mychannel

La salida se verá así:

1) "unsubscribe"
2) "mychannel"
3) (integer) 0

Analicemos la salida:

  • "unsubscribe": Esto indica que has anulado la suscripción a un canal.
  • "mychannel": Este es el nombre del canal del que has anulado la suscripción.
  • (integer) 0: Este es el número de canales a los que estás suscrito actualmente. Ahora es 0 porque has anulado la suscripción a mychannel.

Ahora, sal del redis-cli en esta terminal.

exit

Abre una nueva terminal y conéctate a Redis:

redis-cli

Publica otro mensaje en mychannel:

PUBLISH mychannel "Is anyone still there?"

La salida en esta terminal será:

(integer) 0

Esto indica que ningún cliente recibió el mensaje porque anulaste la suscripción en el paso anterior.

Ahora, sal del redis-cli en esta terminal.

exit

Esto demuestra cómo anular la suscripción a un canal, evitando que recibas más mensajes publicados en ese canal.

Suscripción por Patrones con PSUBSCRIBE

En este paso, aprenderás cómo suscribirte a canales utilizando patrones con el comando PSUBSCRIBE en Redis. PSUBSCRIBE te permite suscribirte a múltiples canales que coinciden con un patrón especificado. Esto es útil cuando deseas recibir mensajes de un grupo de canales relacionados sin suscribirte a cada uno individualmente.

Abre una terminal.

Conéctate al servidor Redis utilizando el comando redis-cli:

redis-cli

Ahora, suscríbete a los canales que coinciden con el patrón news.* utilizando el comando PSUBSCRIBE:

PSUBSCRIBE news.*

La salida se verá similar a esto:

Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news.*"
3) (integer) 1

Analicemos la salida:

  • "psubscribe": Esto indica que te has suscrito correctamente a un patrón.
  • "news.*": Este es el patrón al que te suscribiste. El .* es un comodín (wildcard) que coincide con cualquier carácter.
  • (integer) 1: Este es el número de patrones a los que estás suscrito actualmente.

Mantén esta terminal abierta y suscrita.

Ahora, sal del redis-cli en esta terminal.

exit

Abre una nueva terminal y conéctate a Redis:

redis-cli

Publica un mensaje en el canal news.sports utilizando el comando PUBLISH:

PUBLISH news.sports "Sports news update!"

La salida en esta terminal será el número de suscriptores que recibieron el mensaje:

(integer) 1

Ahora, sal del redis-cli en esta terminal.

exit

Vuelve a la primera terminal (donde te suscribiste al patrón). Deberías ver el mensaje que acabas de publicar. Si cerraste esa terminal, deberás abrir una nueva terminal y volver a suscribirte a news.* utilizando el comando PSUBSCRIBE news.*.

redis-cli
PSUBSCRIBE news.*

Mantén esta terminal abierta y suscrita.

Resumen

En este laboratorio, exploraste los fundamentos de la mensajería Pub/Sub (Publicar/Suscribir) de Redis. Aprendiste cómo suscribirte a canales utilizando el comando SUBSCRIBE, publicar mensajes en canales utilizando el comando PUBLISH, anular la suscripción a canales utilizando el comando UNSUBSCRIBE y suscribirte a canales utilizando patrones con el comando PSUBSCRIBE. Estos comandos son esenciales para construir aplicaciones de mensajería en tiempo real con Redis.