IBM Cloud Docs
Redis Pub/Sub

Redis Pub/Sub

Pub/Sub est un moyen de collecter des données auprès d'un nombre quelconque d'éditeurs de données et de permettre à un ou plusieurs abonnés de consommer le flux en temps réel, sans avoir à se connecter directement aux éditeurs. Ce modèle permet aux systèmes d'évoluer plus facilement et d'ajouter ou de supprimer des éditeurs et des abonnés à tout moment.

Redis permet de créer des canaux Pub/Sub avec lesquels les éditeurs et les abonnés s'interfacent. Les messages sur un canal sont envoyés au maximum une fois à chaque abonné, ce qui les rend idéaux pour les actions de déclenchement qui ne doivent pas être dupliquées, mais attention, une fois délivré, un message sur un canal n'est pas persisté.

Cas d'utilisation :

  • Message en temps réel.
  • Chat éphémère multi-utilisateurs.
  • Log streaming.

S'abonner à un canal

Un abonné émet simplement un "SUBSCRIBE" "pour commencer à s'abonner à une chaîne :

> SUBSCRIBE mychannel

Si un abonné doit s'abonner à plus d'un canal, cela est également possible :

> SUBSCRIBE mychannel1 mychannel2 mychannel3

L'abonnement à un canal signifie que l'abonné recevra tous les messages publiés sur ce canal après son abonnement. Les messages plus anciens ne sont pas conservés, de sorte que l'abonné doit être connecté et abonné pour recevoir les messages au fur et à mesure.

Si le canal n'existe pas, l'abonné ne verra aucune erreur, ni aucun message.

Publier sur un canal

Un éditeur peut publier sur un canal avec la commande 'PUBLISH <channel> <message>

> PUBLISH mychannel "my first message"

et tous les abonnés recevront le message comme suit :

1) "message"
2) "mychannel"
3) "my first message"

Le message d'abonnement comprend le nom du canal et le message lui-même.

Un modèle courant consiste à envoyer des objets JSON en tant que texte du message :

> PUBLISH mychannel '{"id":"1234","name":"db14","msg":"Out of Memory"}'

La valeur de retour de " PUBLISH est un nombre entier qui indique à l'appelant combien d'abonnés ont reçu le message.

Abonnement sélectif

Au lieu de s'abonner à des chaînes entières, il est possible de s'abonner à des chaînes génériques. En nommant prudemment les canaux, il peut être utile de voir, par exemple, tous les journaux d'une application, uniquement les journaux de production ou uniquement les journaux de la base de données de production.

> PSUBSCRIBE *
> PSUBSCRIBE prod_*
> PSUBSCRIBE prod_database_*
> PSUBSCRIBE prod_database_db57_activity_*

Désinscription

Un abonné peut se désabonner de tous les canaux auxquels il est abonné en cliquant sur :

> UNSUBSCRIBE

Pour aller plus loin