Aunque Redis es conocido como una base de datos y un mecanismo de almacenamiento en caché, ofrece un modelo de editor-suscriptor. El uso de Pub-Sub permite que cualquier número de usuarios se suscriba a los canales y reciba los mensajes publicados en esos canales por los editores.
En este artículo, veamos cómo implementar el modelo Redis Pub-Sub. Por el bien de la diversidad, no elegiremos un lenguaje de programación. En su lugar, usamos comandos de Redis sin procesar para lograr esto.
Tabla de Contenidos
Cómo funciona Pub Sub
El modelo Pub Sub es bastante simple. Comenzaremos creando un canal al que un usuario pueda suscribirse.
Una vez que un usuario se suscribe a un canal, no puede enviar comandos al servidor. Sin embargo, el creador del canal (editor) puede enviar comandos y publicar mensajes al servidor.
Recuerda que un mismo usuario puede suscribirse a varios canales al mismo tiempo.
Suscríbete a un canal
Para implementar Pub-Sub, abra la terminal e inicie sesión en la CLI de Redis. Ahora podemos suscribirnos a un canal usando el comando SUBSCRIBE y el nombre del canal al que suscribirnos.
Ejemplo:
SUSCRÍBETE chat_room_1 chat_room_2
El comando anterior debe suscribirse a los canales llamados chat_room_1 y chat_room_2.
En este punto, el usuario puede leer cualquier mensaje publicado en estos canales.
Publicar mensajes
A continuación, abra una nueva ventana de terminal y conéctese al servidor Redis. Una vez conectados, podemos publicar mensajes en los canales como:
127.0.0.1:6379> PUBLICAR chat_room_1 «Hola a todos, bienvenidos a la sala de chat 1»
(entero) 1
El comando anterior debe publicar el mensaje en el canal uno donde los suscriptores pueden recibirlo.
Vaya a la sesión del terminal del suscriptor para verificar.
El mensaje recibido en la ventana del suscriptor consta de tres componentes principales:
- Nota que muestra el mensaje.
- El canal al que se envió el mensaje.
- El contenido del mensaje.
NOTA: Publicar un mensaje en un canal que no existe (lo que significa que no hay suscriptores) obligará a Redis a descartar el mensaje y devolver 0.
Ejemplo:
127.0.0.1:6379> PUBLICAR mensaje sin canal
(entero)
Conclusión
Este artículo cubre el uso del modelo Pub-Sub de Redis con un tutorial simple. Al usar comandos de Redis sin procesar y evitar cualquier lenguaje de programación, los lectores deberían poder enviar y recibir mensajes usando Redis Pub-Sub al final de este artículo.