サーチ…
前書き
Redisは、Publish / Subscribe(Pub / Sub)メッセージングパターンの実装を提供します。特定の受信者にメッセージを送信するのではなく、いくつかの間接的なメカニズムを介して、関心のある受信者にメッセージを送信します。受信者は、特定のメッセージに関心を示します。 Redisでは、チャネル上のPUBLISHおよびSUBSCRIBEコマンドを使用してこの機能にアクセスします。
構文
- SUBSCRIBEチャンネル[チャンネル...]
- UNSUBSCRIBE [チャンネル[チャンネル...]]
- PUBLISHチャンネルメッセージ
- PSUBSCRIBEパターン[パターン...]
- PUNSUBSCRIBE [パターン[パターン...]]
備考
redisでpub / subを処理するには、サブスクライブ用に1つのクライアントを用意し、公開用に別のクライアントを用意する必要があります 。どちらも同じクライアントで処理することはできません。他のすべてのコマンドは、同じクライアントで引き続き処理できます。
赤字でパブリッシュ&購読する
Redisはメッセージを送信するためにパブリッシュ/サブスクライブしています。これは、チャンネルを購読し、チャンネルに公開することによって処理されます。はい、加入者は1つ以上のチャンネルを購読します。パブリッシャーは誰がすべての加入者であるかを知る必要はありません。代わりに、サイト運営者は特定のチャンネルに公開します。そのチャネルに加入しているすべての加入者にメッセージが届きます。このパブリッシャとサブスクライバの分離は、スケーラビリティとよりダイナミックなネットワークトポロジを可能にします。
例:ユーザーがfoo&booという2つのチャンネルを購読しています
SUBSCRIBE foo boo
redis-client1のコンソール:
127.0.0.1:6379> SUBSCRIBE foo boo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1
1) "subscribe"
2) "boo"
3) (integer) 2
それはメッセージを聞き始めます。オンにすると、対応するチャンネルのデータが得られます。
例:ブーと関係があるすべての加入者にメッセージを送信する場合、そのチャネルにパブリッシュする必要があります。
PUBLISH boo "Hello Boo"
redis-client1のコンソール:
1) "message"
2) "boo" //channel name
3) "Hello Boo" //Actual data
いつでもチャンネルから退会するには、
UNSUBSCRIBE // to unsubscribe from all channels
UNSUBSCRIBE foo // to unsubscribe from specific channel
パターンに基づいて購読することもできます。チャネル名がPSUBSCRIBEを使用してパターンに基づいてサブスクライブすることを確認/ 不明な場合 。
パターン使用に基づく退会と同様にPUNSUBSCRIBE