ホームページ  >  記事  >  データベース  >  Redisのパブリッシュ&サブスクライブ機能の導入と実装

Redisのパブリッシュ&サブスクライブ機能の導入と実装

WBOY
WBOYオリジナル
2023-05-10 20:55:342592ブラウズ

Redis は、文字列、ハッシュ、リスト、セット、順序付きセットなどのさまざまなデータ構造をサポートする、人気のあるオープンソースのメモリ内データ構造ストレージ システムです。これらの基本的なデータ構造に加えて、Redis は多くの高度な機能も提供します。その 1 つがパブリッシュおよびサブスクライブ機能です。この記事では、Redis のパブリッシュおよびサブスクライブ機能について、その基本原理と Redis での実装方法を含めて紹介します。

1. Redis パブリッシュとサブスクライブの基本原則

パブリッシュとサブスクライブは、パブリッシャーがサブスクライバーに直接メッセージを送信するのではなく、チャネル (チャネル) にメッセージを送信するメッセージング モデルです。 。サブスクライバーは特定のチャネルをリッスンして、パブリッシャーから送信されたメッセージを取得します。 Redis では、このモデルはパブリッシュ/サブスクライブと呼ばれます。

Redis では、パブリッシャーは特定のチャネルにメッセージを送信し、これらのチャネルはサブスクライバーによってサブスクライブされます。パブリッシャーがチャネルにメッセージを送信すると、チャネルのすべてのサブスクライバーがメッセージを受信します。このモデルは、チャット ルームやリアルタイム データ分析など、リアルタイム要件が高いアプリケーションに役立ちます。

2. Redis パブリッシュおよびサブスクライブの実装

Redis は、パブリッシュおよびサブスクライブ モデルをサポートするいくつかのコマンドを提供します。これらのコマンドの使用法と具体的な実装を見てみましょう。

  1. PUBLISH コマンド

PUBLISH コマンドは、指定されたチャネルにメッセージを送信するために使用されます。その構文は次のとおりです。

PUBLISH channel message

ここで、channel はチャネルの名前、message は送信されるメッセージです。たとえば、「news」という名前のチャネルにメッセージを送信するには、次のコマンドを使用できます:

PUBLISH news "Hello, world!"

  1. SUBSCRIBE コマンド

SUBSCRIBE コマンドは、1 つ以上のチャネルに登録するために使用されます。構文は次のとおりです。

SUBSCRIBE channel [channel …]

たとえば、「news」と「weather」という 2 つのチャンネルに登録するには、次のコマンドを使用できます。

SUBSCRIBE news Weather

新しいメッセージが購読チャネルにパブリッシュされると、Redis はそのメッセージを購読者に送信し、購読者はメッセージを処理できます。

  1. UNSUBSCRIBE コマンド

UNSUBSCRIBE コマンドは、1 つ以上のチャネルからの購読を解除するために使用されます。構文は次のとおりです。

UNSUBSCRIBE [channel [channel …]]

たとえば、「news」という名前のチャンネルの登録を解除するには、次のコマンドを使用できます。

UNSUBSCRIBE ニュース

サブスクライバーがチャンネルのサブスクリプションを解除すると、Redis はそのチャンネルのメッセージをそのチャンネルに送信しなくなります。

  1. PSUBSCRIBE コマンド

PSUBSCRIBE コマンドは、パターンを介して 1 つ以上のチャネルにサブスクライブするために使用されます。その構文は次のとおりです。

PSUBSCRIBE pattern [pattern …]

このうち、pattern はワイルドカード表現です。たとえば、「news.*」は、名前が「」で始まるすべてのチャンネルに一致します。ニュース。"。

  1. PUNSUBSCRIBE コマンド

PUNSUBSCRIBE コマンドは、パターンを通じてサブスクライブされた 1 つ以上のチャネルをキャンセルするために使用されます。構文は次のとおりです。

PUNSUBSCRIBE [パターン [パターン ...]]

たとえば、「news.」および「weather.」という名前のパターンのチャンネル登録を解除するには、 、次のコマンドを使用できます:

PUNSUBSCRIBE news.weather.

購読者がパターンを使用してチャンネルに登録すると、Redis は条件を満たすすべてのチャンネル名を照合します。ワイルドカード式 を使用して、これらのチャネルからサブスクライバにメッセージを送信します。

3. Redis パブリッシュおよびサブスクライブの例

次は、Redis パブリッシュおよびサブスクライブ モデルの使用方法を示す簡単な例です。

  1. 2 つのコンソール ウィンドウを開いて、それぞれ Redis サーバーに接続します。

redis-cli

  1. 最初のウィンドウで使用します。 SUBSCRIBE コマンド「news」という名前のチャンネルに登録します:

SUBSCRIBE news

  1. 2 番目のウィンドウで PUBLISH コマンドを使用して、「news」という名前のチャンネルにメッセージを送信します。 メッセージ:

ニュース「Hello, world!」を公開

  1. 最初のウィンドウで、メッセージが受信されたことがわかります:

1 ) "message"
2) "news"
3) "Hello, world!"

この例では、「news」Subscriber という名前のチャネルへのサブスクリプションを作成し、PUBLISH を使用します。別のウィンドウでコマンドを実行して、チャネルにメッセージを送信します。サブスクライバがメッセージを受信したら、それをコンソールに出力します。

結論

この記事では、Redis のパブリッシュおよびサブスクライブ機能について、その基本原理と Redis での実装方法を含めて紹介します。他のメッセージ キューと比較して、Redis のパブリッシュおよびサブスクライブ機能は非常にシンプルで、使用および実装が簡単で、高スループットと低遅延という利点があります。 Redis のパブリッシュ/サブスクライブ機能を使用すると、チャット ルーム、リアルタイム データ処理などの強力なリアルタイム アプリケーションを簡単に構築できます。

以上がRedisのパブリッシュ&サブスクライブ機能の導入と実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。