Pub/Sub Redis

Redis Pub/Sub (pub/sub) est un modèle de communication de messages : les expéditeurs (pub) envoient des messages, et les abonnés (sub) reçoivent des messages.

Les clients Redis peuvent s'abonner à un nombre quelconque de canaux.

Le diagramme suivant montre la relation entre channel1 et les trois clients abonnés à ce canal — client2, client5 et client1 :

Lorsqu'un nouveau message est envoyé à channel1 via la commande PUBLISH, le message est distribué aux trois clients qui y sont abonnés :


Exemple

L'exemple suivant montre comment fonctionne pub/sub. Vous devez ouvrir deux clients redis-cli.

Dans notre exemple, nous avons créé un canal d'abonnement nomméexampleChat:

Premier client redis-cli

redis 127.0.0.1:6379> SUBSCRIBE exampleChat

Lecture des messages... (appuyez sur Ctrl-C pour quitter)
1) "subscribe"
2) "exampleChat"
3) (entier) 1

Maintenant, redémarrons un client Redis, puis publions deux messages sur le même canal exampleChat. L'abonné recevra les messages.

Deuxième client redis-cli

redis 127.0.0.1:6379> PUBLISH exampleChat "Redis PUBLISH test"

(integer) 1

redis 127.0.0.1:6379> PUBLISH exampleChat "Learn redis by example.com"

(integer) 1

# Le client de l'abonné affichera les messages suivants
 1) "message"
2) "exampleChat"
3) "Redis PUBLISH test"
 1) "message"
2) "exampleChat"
3) "Learn redis by example.com"

La démonstration GIF est la suivante :

  • Démarrez le service Redis local et ouvrez deux clients redis-cli.

  • DansPremier client redis-cliEntrezSUBSCRIBE exampleChat, ce qui signifie s'abonner auexampleChatcanal.

  • DansSecond client redis-cliEntrezPUBLISH exampleChat "Redis PUBLISH test"Envoyez un message au canal exampleChat. À ce stade, le premier client redis-cli verra le message de test envoyé par le second client redis-cli.


Commandes Redis Pub/Sub

Le tableau suivant répertorie les commandes Redis pub/sub courantes :

Non.Commande et description
1PSUBSCRIBE pattern [pattern ...]
S'abonner à un ou plusieurs canaux correspondant au motif donné.
2PUBSUB subcommand [argument [argument ...]]
Afficher l'état du système d'abonnement et de publication.
3PUBLISH channel message
Envoyer un message au canal spécifié.
4PUNSUBSCRIBE [pattern [pattern ...]]
Se désabonner de tous les canaux correspondant au motif donné.
5SUBSCRIBE channel [channel ...]
S'abonner aux informations d'un ou de plusieurs canaux donnés.
6UNSUBSCRIBE [channel [channel ...]]
Permet de se désabonner du ou des canaux donnés.
Autres extensions