Unas notas sencillas sobre publicación-suscripción en Redis, es la implementación de Redis de este patrón usando canales y clientes.
En Redis existen lo que se llama patrones de suscripción, que es una forma de suscribirse a varios canales a la vez que cumplan un patrón, este patrón está basado en el nombre (estilo glob), se soportan los siguientes:
- ? Para un solo carácter
- * Para múltiples caracteres
- […] Caracteres alternos (h[ae]llo funciona con hello y hallo)
- ^ Prefijos (no empieza por …)
| PUBLISH channel message | Publica el mensaje message a los N suscriptores del canal channel que se hayan suscrito a los M patrones de suscripción, devolverá el numero de clientes que han recibido el mensaje | O(N+M) |
| SUBSCRIBE channel-1… [channel-N] | Suscribe al cliente al numero de canales N especificado | O(N) |
| UNSUBSCRIBE channel-1 [… channel-N] | Elimina la suscripción del canal indicado (en el que hay N clientes) o de todos sino se indica ninguno | O(N) |
| PUBSUB CHANNELS * | Devuelve el número N de canales activos | O(N) |
| PUBSUB NUMSUB channel-1 [… channel-N] | Devuelve el número de suscriptores excluyendo suscriptores en patrones para los N canales solicitados | O(N) |
| PUBSUB NUMPAT [channel-1 … channel-N] | Devuelve el número de suscriptores con patrones y el número de patrones | O(1) |
| PSUBSCRIBE pattern1 […pattern-n] | Permite suscribirse basado en el patrón de suscripción indicado añadiéndolo a los N patrones a los que ya estuviera suscrito | O(N) |
| PUNSUBSCRIBE pattern1 […pattern-n] | Elimina del sistema el patrón indicado, de los N patrones que tuviera el cliente, dentro de los M patrones que tiene el sistema | O(N+M) |
