サーチ…


前書き

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



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow