Redis は、文字列、ハッシュ、リスト、セット、順序付きセットなどのさまざまなデータ構造をサポートする、人気のあるオープンソースのメモリ内データ構造ストレージ システムです。これらの基本的なデータ構造に加えて、Redis は多くの高度な機能も提供します。その 1 つがパブリッシュおよびサブスクライブ機能です。この記事では、Redis のパブリッシュおよびサブスクライブ機能について、その基本原理と Redis での実装方法を含めて紹介します。
1. Redis パブリッシュとサブスクライブの基本原則
パブリッシュとサブスクライブは、パブリッシャーがサブスクライバーに直接メッセージを送信するのではなく、チャネル (チャネル) にメッセージを送信するメッセージング モデルです。 。サブスクライバーは特定のチャネルをリッスンして、パブリッシャーから送信されたメッセージを取得します。 Redis では、このモデルはパブリッシュ/サブスクライブと呼ばれます。
Redis では、パブリッシャーは特定のチャネルにメッセージを送信し、これらのチャネルはサブスクライバーによってサブスクライブされます。パブリッシャーがチャネルにメッセージを送信すると、チャネルのすべてのサブスクライバーがメッセージを受信します。このモデルは、チャット ルームやリアルタイム データ分析など、リアルタイム要件が高いアプリケーションに役立ちます。
2. Redis パブリッシュおよびサブスクライブの実装
Redis は、パブリッシュおよびサブスクライブ モデルをサポートするいくつかのコマンドを提供します。これらのコマンドの使用法と具体的な実装を見てみましょう。
PUBLISH コマンドは、指定されたチャネルにメッセージを送信するために使用されます。その構文は次のとおりです。
PUBLISH channel message
ここで、channel はチャネルの名前、message は送信されるメッセージです。たとえば、「news」という名前のチャネルにメッセージを送信するには、次のコマンドを使用できます:
PUBLISH news "Hello, world!"
SUBSCRIBE コマンドは、1 つ以上のチャネルに登録するために使用されます。構文は次のとおりです。
SUBSCRIBE channel [channel …]
たとえば、「news」と「weather」という 2 つのチャンネルに登録するには、次のコマンドを使用できます。
SUBSCRIBE news Weather
新しいメッセージが購読チャネルにパブリッシュされると、Redis はそのメッセージを購読者に送信し、購読者はメッセージを処理できます。
UNSUBSCRIBE コマンドは、1 つ以上のチャネルからの購読を解除するために使用されます。構文は次のとおりです。
UNSUBSCRIBE [channel [channel …]]
たとえば、「news」という名前のチャンネルの登録を解除するには、次のコマンドを使用できます。
UNSUBSCRIBE ニュース
サブスクライバーがチャンネルのサブスクリプションを解除すると、Redis はそのチャンネルのメッセージをそのチャンネルに送信しなくなります。
PSUBSCRIBE コマンドは、パターンを介して 1 つ以上のチャネルにサブスクライブするために使用されます。その構文は次のとおりです。
PSUBSCRIBE pattern [pattern …]
このうち、pattern はワイルドカード表現です。たとえば、「news.*」は、名前が「」で始まるすべてのチャンネルに一致します。ニュース。"。
PUNSUBSCRIBE コマンドは、パターンを通じてサブスクライブされた 1 つ以上のチャネルをキャンセルするために使用されます。構文は次のとおりです。
PUNSUBSCRIBE [パターン [パターン ...]]
たとえば、「news.」および「weather.」という名前のパターンのチャンネル登録を解除するには、 、次のコマンドを使用できます:
PUNSUBSCRIBE news.weather.
購読者がパターンを使用してチャンネルに登録すると、Redis は条件を満たすすべてのチャンネル名を照合します。ワイルドカード式 を使用して、これらのチャネルからサブスクライバにメッセージを送信します。
3. Redis パブリッシュおよびサブスクライブの例
次は、Redis パブリッシュおよびサブスクライブ モデルの使用方法を示す簡単な例です。
redis-cli
SUBSCRIBE news
ニュース「Hello, world!」を公開
1 ) "message"
2) "news"
3) "Hello, world!"
この例では、「news」Subscriber という名前のチャネルへのサブスクリプションを作成し、PUBLISH を使用します。別のウィンドウでコマンドを実行して、チャネルにメッセージを送信します。サブスクライバがメッセージを受信したら、それをコンソールに出力します。
結論
この記事では、Redis のパブリッシュおよびサブスクライブ機能について、その基本原理と Redis での実装方法を含めて紹介します。他のメッセージ キューと比較して、Redis のパブリッシュおよびサブスクライブ機能は非常にシンプルで、使用および実装が簡単で、高スループットと低遅延という利点があります。 Redis のパブリッシュ/サブスクライブ機能を使用すると、チャット ルーム、リアルタイム データ処理などの強力なリアルタイム アプリケーションを簡単に構築できます。
以上がRedisのパブリッシュ&サブスクライブ機能の導入と実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。