Darse de baja con UNSUBSCRIBE
En este paso, aprenderá cómo darse de baja de un canal en Redis utilizando el comando UNSUBSCRIBE. Darse de baja elimina a un cliente de la lista de suscriptores de un canal específico, impidiendo que reciba mensajes adicionales publicados en ese canal.
Terminal 1: Salir del modo de suscripción
Vaya a la Terminal 1 (donde actualmente está suscrito a mychannel). Debería ver el estado de la suscripción mostrando "Reading messages... (press Ctrl-C to quit)".
Dado que la Terminal 1 está en modo de suscripción, no puede ejecutar comandos regulares de Redis directamente. Para darse de baja, primero debe salir del modo de suscripción:
-
Presione Ctrl+C para salir del modo de suscripción.
-
Debería ver que la sesión de redis-cli finaliza y regresa al prompt de la terminal.
-
Vuelva a conectarse a Redis:
redis-cli
-
Ahora puede ejecutar el comando UNSUBSCRIBE (aunque no es necesario, ya que la desconexión ya lo ha dado de baja):
UNSUBSCRIBE mychannel
Nota: Cuando presionó Ctrl+C, en realidad ya se desconectó de todas las suscripciones. El comando UNSUBSCRIBE se muestra con fines demostrativos, pero en la práctica, desconectarse lo da de baja automáticamente de todos los canales.
La salida en la Terminal 1 se verá así:
1) "unsubscribe"
2) "mychannel"
3) (integer) 0
Analicemos la salida:
"unsubscribe": Esto indica que se ha dado de baja de un canal.
"mychannel": Este es el nombre del canal del que se ha dado de baja.
(integer) 0: Este es el número de canales a los que está suscrito actualmente. Ahora es 0 porque se dio de baja de mychannel.
Terminal 2: Probar la publicación después de darse de baja
Ahora cambie a la Terminal 2 y publique otro mensaje en mychannel:
PUBLISH mychannel "Is anyone still there?"
La salida en la Terminal 2 será:
(integer) 0
Esto indica que ningún cliente recibió el mensaje porque se dio de baja del canal en la Terminal 1.
Verificar que no se recibió ningún mensaje
Mire la Terminal 1: debería notar que no aparece ningún mensaje nuevo porque se ha dado de baja del canal.
Esto demuestra cómo darse de baja de un canal le impide recibir mensajes adicionales publicados en ese canal, mientras que el publicador aún puede enviar mensajes (pero nadie los recibirá).
Importante: Mantenga ambas terminales y sus sesiones de redis-cli activas para el siguiente paso.