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

Redis 发布・購読

Redisの发布订阅(pub/sub)はメッセージ通信モードで、送信者(pub)がメッセージを送信し、サブスクライバー(sub)がメッセージを受け取ります。

Redisクライアントは任意の数のチャンネルにサブスクライブできます。

以下の図はチャンネルchannel1 、およびこのチャンネルにサブスクライブしている3つのクライアント - client2 、client5 とclient1 の関係:

新しいメッセージがPUBLISHコマンドでchannelに送信された場合1 の時、このメッセージはサブスクライブしている3つのクライアントに送信されます:

オンラインの例

以下の例では、publish/subscribeがどのように動作するかを示しています。2つのredisを開始する必要があります-cliクライアント

私たちの例では、サブスクライバーのチャンネル名として作成しました w3codeboxChat:

第1つのredis-cliクライアント

redis 127.0.0.1:6379> SUBSCRIBE w3codeboxChat
メッセージを読み込んでいます... (Ctrlを押して)-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1

まず、redisクライアントを再起動し、同じチャンネルw3codeboxChatが2回メッセージを投稿し、サブスクライバーはメッセージを受け取ることができます。

第2つのredis-cliクライアント

redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Redis PUBLISH test"
(integer) 1
redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Learn redis by oldtoolbag.com"
(integer) 1
# サブスクライバーのクライアントは以下のメッセージを表示します
 1) "message"
2) "w3codeboxChat"
3) "Redis PUBLISH test"
 1) "message"
2) "w3codeboxChat"
3) "Learn redis by oldtoolbag.com"

プロセスは以下の通りです:

  • ローカルのRedisサービスを開始し、2つのredisを開始します-cliクライアント

  • 第1つのredis-cliクライアントSUBSCRIBE w3codeboxChat、wに購読することを意味します3codeboxChatチャンネル

  • 第2つのredis-cliクライアントPUBLISH w3codeboxChat "Redis PUBLISH test" を w3codeboxChatチャンネルからメッセージを受信します、この時点で第1つのredis-cliクライアントが第2つのredisから-cliクライアントが送信したテストメッセージ。

Redis 发布購読コマンド

以下の表に、redisの发布購読常用コマンドを示します:

番号コマンド及び説明
1PSUBSCRIBE pattern [pattern ...]
指定されたパターンに一致する一つまたは複数のチャンネルを購読します。
2PUBSUB subcommand [argument [argument ...]]
購読と发布システムの状態を確認します。
3PUBLISH channel message
情報を指定されたチャンネルに送信します。
4PUNSUBSCRIBE [pattern [pattern ...]]
指定されたパターンのすべてのチャンネルを解除します。
5SUBSCRIBE channel [channel ...]
指定された一つまたは複数のチャンネルの情報を購読します。
6UNSUBSCRIBE [channel [channel ...]]
指定されたチャンネルの購読を解除します。