Redis のパブリッシュとサブスクライブ
Redis パブリッシュおよびサブスクライブ (pub/sub) はメッセージ通信モデルです。送信者 (パブ) がメッセージを送信し、サブスクライバー (サブスクリプション) がメッセージを受信します。
Redis クライアントは、任意の数のチャネルをサブスクライブできます。
次の図は、チャネル channel1 と、このチャネルにサブスクライブする 3 つのクライアント (client2、client5、client1) との関係を示しています。
新しいメッセージが PUBLISH コマンドを通じてチャネル channel1 に送信されると、このメッセージはサブスクライブする 3 つのクライアント:
例
次の例は、パブリッシュ/サブスクライブがどのように機能するかを示しています。この例では、redisChat:
redis 127.0.0.1:6379> SUBSCRIBE redisChat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "redisChat" 3) (integer) 1
という名前のサブスクリプション チャネルを作成しました。次に、最初に Redis クライアントを再起動し、次に同じチャネル redisChat でメッセージを 2 回公開して、サブスクライバーがメッセージを受信できるようにします。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique" (integer) 1 redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by w3cschool.cc" (integer) 1 # 订阅者的客户端会显示如下消息 1) "message" 2) "redisChat" 3) "Redis is a great caching technique" 1) "message" 2) "redisChat" 3) "Learn redis by w3cschool.cc"
Redis パブリッシュおよびサブスクライブ コマンド
次の表に、一般的な Redis パブリッシュおよびサブスクライブ コマンドを示します:
シリアル番号 | コマンドと説明 |
---|---|
1 | PSUBSCRIBE パターン [パターン ...] 指定されたパターンに一致する 1 つまたは複数のチャンネルを購読します。 |
2 | PUBSUB サブコマンド [引数 [引数 ...]] サブスクリプションと公開システムのステータスを表示します。 |
3 | チャンネルメッセージを公開 指定されたチャンネルにメッセージを送信します。 |
4 | PUNSUBSCRIBE [パターン [パターン ...]] 指定されたパターンのすべてのチャンネルから購読を解除します。 |
5 | チャンネルを購読する [チャンネル ...] 指定されたチャンネルからの情報を購読します。 |
6 | UNSUBSCRIBE [チャンネル [チャンネル ...]] 指定されたチャンネルの登録を解除することを指します。 |