Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

このチュートリアルでは、Redisデータストアをパブリッシュ/サブスクライブ(Publish/Subscribe)型のメッセージングシステムとして活用する方法について解説します。

Redis Pub/Subシステムとは

Redisは、パブリッシュ/サブスクライブ(Pub/Sub)というメッセージングパラダイムを実装しています。このモデルでは、メッセージの送信者(パブリッシャー)は、特定の受信者(サブスクライバー)に直接メッセージを送るようには設計されていません。代わりに、パブリッシャーは特定の「チャネル」に対してメッセージを送信(パブリッシュ)します。その際、どの受信者が、あるいはそもそも受信者が存在するかどうかを意識する必要はありません。

一方、メッセージを受け取りたい受信者(サブスクライバー)は、1つ以上のチャネルを購読(サブスクライブ)することで関心を登録します。すると、そのチャネルにパブリッシュされたメッセージだけを受信できます。このときも、誰がメッセージを送ったのかを知る必要はありません。

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

Redisの用語では、チャネルへメッセージを発行する送信者をパブリッシャー(Publisher)、1つ以上のチャネルを購読してメッセージを受け取る受信者をサブスクライバー(Subscriber)と呼びます。メッセージの中身は任意で、単純なテキストでも、タスクに関する情報でも構いません。サブスクライバーはいくつでもチャネルを購読でき、パブリッシャーも任意のチャネルにメッセージを発行できます。

このようにパブリッシャーとサブスクライバーが疎結合(デカップリング)されていることで、システムのスケーラビリティと柔軟性が大きく向上します。

なお、RedisのPub/Sub機能は、Redisのキーバリューデータベースとはまったく関係がありません。データベース番号を含め、どのレベルでも干渉しません。たとえば、パブリッシャーがDBインデックス10上でメッセージを発行した場合でも、DBインデックス1上のサブスクライバーはそのメッセージを受信できます。

Redis Pub/Subの主要コマンド一覧

Redis Pub/Subに関連する重要なコマンドは以下のとおりです。

No. コマンド 説明
1 PSUBSCRIBE 指定したパターンに一致する1つ以上のチャネルを購読する
2 PUBSUB Pub/Subシステムの現在の状態を確認する
3 PUBLISH 指定したチャネルにメッセージを発行する
4 PUNSUBSCRIBE 指定したパターンに一致する1つ以上のチャネルの購読を解除する
5 SUBSCRIBE 1つ以上のチャネルを購読する
6 UNSUBSCRIBE 1つ以上のチャネルの購読を解除する

実行例

ここでは、redis-cliの3つの異なるインスタンスを使って、Redis Pub/Subシステムの動作を確認します。1つ目のクライアントはC1C2の2つのチャネルを購読し、残りの2つのクライアントはそれぞれC1C2のチャネルにメッセージを発行します。

1. 1つ目のクライアントがC1とC2のチャネルを購読

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

2. 2つ目のクライアントがC1チャネルに「Hello」を発行

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

3. 3つ目のクライアントがC2チャネルに「World」を発行

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

4. 1つ目のクライアントがC1とC2から配信されたメッセージを表示

Redis Pub/Sub入門:パブリッシュ/サブスクライブ型メッセージングシステムの使い方 – Redisチュートリアル

このように、購読しているクライアントは、各チャネルに発行されたメッセージをリアルタイムで受け取れていることがわかります。

参考文献

  1. Pub/Subコマンド公式ドキュメント

この記事が役に立った場合は、ぜひコメント欄でご感想をお聞かせください。また、他の方へのシェアも歓迎します。

次の記事 → Jedisライブラリを使ったRedis Pub/Subの実装例

  1. 0x000006beエラーの原因と解決方法をわかりやすく解説

    0x000006beは、主にプリンターのインストール時に発生するエラーコードで、特にWindows Vista環境においてLAN(ローカルエリアネットワーク)上にプリンターを「追加」しようとした際に表示されやすい問題です。プリンターの追加手順が正常に完了しなかった場合に起こり、その背景にはさまざまな要因が考えられます。 0x000006beエラーの主な原因 ドライバーのバージョンが古い:プリンターとパソコンが正常に通信できていない可能性があります。 システムファイルの破損:パソコン内のファイルが壊れていることで、プリンターを正しく認識できない状態になっています。 接続の不具合:ケーブルやネ

  2. テキスト読み上げソフト「Festival」の使い方 – 音声合成システム入門チュートリアル

    テキスト読み上げ(TTS)は地味な機能に思えるかもしれませんが、実はとても有用なツールです。視覚に障害のある方がコンピュータを快適に利用できるようにするだけでなく、さまざまな場面で活躍します。たとえば、車の中で(運転中はやめましょうね)文章を読みたいけれど、車内で読むと酔ってしまうという経験はありませんか?あるいは、長い説明文を音声に置き換えて、チュートリアルにナレーション要素を加えたいと思うこともあるでしょう。Festival はまさにそのためのソフトウェアです。Festival は音声合成システム(Speech Synthesis System)で、テキストを音声に変換できます。スクリプト