English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

发布订阅 Redis

Publication et abonnement Redis (pub/sub) est un mode de communication de messages : l'émetteur (pub) envoie des messages, et les abonnés (sub) reçoivent des messages.

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

La figure suivante montre le canal channel1 , ainsi que les trois clients abonnés à ce canal - client2 、 client5 et client1 les relations entre

Lorsqu'un nouveau message est envoyé au canal channel via la commande PUBLISH1 lorsque ce message est envoyé aux trois clients abonnés :

Exemple en ligne

Le prochain exemple montre comment fonctionne la publication et l'abonnement, nécessitant l'ouverture de deux instances de redis-客户端

Dans notre exemple, nous avons créé un canal abonné nommé w3codeboxChat:

第一个 redis-客户端

redis 127.0.0.1:6379> SUBSCRIBE w3codeboxChat
Lecture des messages... (appuyez sur Ctrl-C pour quitter)
1) "subscribe"
2) "redisChat"
3) (integer) 1

Maintenant, redémarrez d'abord un client Redis, puis dans le même canal w3codeboxChat publie deux messages, et les abonnés peuvent recevoir les messages.

第二个 redis-客户端

redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Redis PUBLISH test"
(integer) 1
redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Apprendre Redis par oldtoolbag.com"
(integer) 1
# Le client abonné affichera le message suivant
 1) "message"
2) "w3codeboxChat"
3) "Redis PUBLISH test"
 1) "message"
2) "w3codeboxChat"
3) "Apprendre Redis par oldtoolbag.com"

Le processus est le suivant :

  • Démarrer le service Redis local, ouvrir deux instances de redis-客户端

  • 第一个 redis-客户端输入 SUBSCRIBE w3codeboxChat,意思是订阅 w3codeboxChat 频道。

  • 第二个 redis-客户端输入 PUBLISH w3codeboxChat "Redis PUBLISH test" 往 w3codeboxChat 频道消息,这个时候在第一个 redis-客户端第二个 redis-消息测试发送客户端

命令发布订阅 Redis

下表列出了 redis 发布订阅常用命令:

序号命令及描述
1PSUBSCRIBE pattern [pattern ...]
订阅一个或多个符合给定模式的频道。
2PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统状态。
3PUBLISH channel message
将信息发送到指定的频道。
4PUNSUBSCRIBE [pattern [pattern ...]]
退订所有给定模式的频道。
5SUBSCRIBE channel [channel ...]
订阅给定的一个或多个频道的信息。
6UNSUBSCRIBE [channel [channel ...]]
指退订给定的频道。