English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redisの发布订阅(pub/sub)はメッセージ通信モードで、送信者(pub)がメッセージを送信し、サブスクライバー(sub)がメッセージを受け取ります。
Redisクライアントは任意の数のチャンネルにサブスクライブできます。
以下の図はチャンネルchannel1 、およびこのチャンネルにサブスクライブしている3つのクライアント - client2 、client5 とclient1 の関係:
新しいメッセージがPUBLISHコマンドでchannelに送信された場合1 の時、このメッセージはサブスクライブしている3つのクライアントに送信されます:
以下の例では、publish/subscribeがどのように動作するかを示しています。2つのredisを開始する必要があります-cliクライアント
私たちの例では、サブスクライバーのチャンネル名として作成しました w3codeboxChat:
まず、redisクライアントを再起動し、同じチャンネルw3codeboxChatが2回メッセージを投稿し、サブスクライバーはメッセージを受け取ることができます。
プロセスは以下の通りです:
ローカルの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の发布購読常用コマンドを示します:
番号 | コマンド及び説明 |
---|---|
1 | PSUBSCRIBE pattern [pattern ...] 指定されたパターンに一致する一つまたは複数のチャンネルを購読します。 |
2 | PUBSUB subcommand [argument [argument ...]] 購読と发布システムの状態を確認します。 |
3 | PUBLISH channel message 情報を指定されたチャンネルに送信します。 |
4 | PUNSUBSCRIBE [pattern [pattern ...]] 指定されたパターンのすべてのチャンネルを解除します。 |
5 | SUBSCRIBE channel [channel ...] 指定された一つまたは複数のチャンネルの情報を購読します。 |
6 | UNSUBSCRIBE [channel [channel ...]] 指定されたチャンネルの購読を解除します。 |