Veamos cómo implementar el modelo Redis Pub-sub en este artículo. Para la diversidad, no optaremos por ningún lenguaje de programación. En su lugar, utilizaremos los comandos RAW REDIS para lograr esto.
Cómo funciona Pub-sub
El modelo de pub-sub es bastante sencillo. Comenzamos creando un canal al que un usuario puede suscribirse.
Una vez que un usuario se suscribe a un canal, no puede enviar ningún comando al servidor. Sin embargo, el creador del canal (editor) puede enviar comandos y publicar mensajes al servidor.
Tenga en cuenta que un solo usuario puede suscribirse a múltiples canales simultáneamente.
Suscribirse a un canal
Para implementar PUB-Sub, abra el terminal e inicie sesión en Redis CLI. Ahora podemos suscribirnos a un canal utilizando el comando suscribirse y el nombre de los canales para suscribirse a.
Ejemplo:
Suscribir chat_room_1 chat_room_2
El comando anterior debe suscribirse a canales llamados chat_room_1 y chat_room_2.
En este punto, el usuario puede leer cualquier mensaje que se publique en estos canales.
Mensajes de publicación
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, bienvenido 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 de la terminal de suscriptores para verificarla.
El mensaje recibido en la ventana del suscriptor se compone de tres componentes principales:
Nota: Publicar un mensaje a un canal que no existe (lo que significa que no hay suscriptores) obliga a Redis a descartar el mensaje y devolver 0.
Ejemplo:
127.0.0.1: 6379> Publicar el nomesaje de nochannal
(entero) 0
Conclusión
Este artículo cubre cómo usar el modelo Redis Pub-sub a través de un tutorial simple. Al usar comandos RAW REDIS y abstenerse del lenguaje de programación, los lectores deben poder enviar y recibir mensajes con Redis Pub-sub al final de este artículo.