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

Redis SUBSCRIBEコマンド徹底解説 – Pub/Subで複数チャネルを同時に購読する方法

本チュートリアルでは、redis-cliを使ってRedisのメッセージブローカー(Pub/Sub)システム上で、複数のチャネルを同時にサブスクライブ(購読)する方法を詳しく解説します。

SUBSCRIBEコマンドとは

SUBSCRIBEコマンドは、クライアントをRedisメッセージブローカーシステム内の1つ以上の指定チャネルに登録するためのコマンドです。クライアントがSUBSCRIBEコマンドを実行すると「サブスクライブ状態」に入り、登録済みのチャネルを待ち受けます。他のクライアントが該当チャネルに対してPUBLISHコマンドでメッセージを発行すると、Redisはそのメッセージをすべての購読中のクライアントへ自動的にプッシュします。

なお、クライアントがサブスクライブ状態にある間は、SUBSCRIBE・PSUBSCRIBE・UNSUBSCRIBE・PUNSUBSCRIBE・PING・QUIT以外のコマンドを実行できません。redis-cliの場合、一度サブスクライブ状態に入るとそれ以外のコマンドは受け付けなくなり、Ctrl + Cキーでのみこの状態を抜けることができる点に注意してください。

構文

redis host:port> SUBSCRIBE <channel> [ <channel> ... ]

チャネル名をスペース区切りで複数指定することで、1つのコマンド実行だけで同時に複数のチャネルを購読できます。

戻り値

- (array) 3要素の配列レスポンス

プッシュされるメッセージの形式

受信するメッセージは、3つの要素からなる配列レスポンスとして返されます。配列の最初の要素は、以下のいずれかの種類になります。

  1. subscribe: レスポンスの2番目の要素で示されるチャネルへの購読が正常に完了したことを意味します。3番目の引数には、現在購読中のチャネルの総数が格納されています。
  2. message: 他のクライアントが発行したPUBLISHコマンドの結果として受信したメッセージです。2番目の要素は送信元のチャネル名、3番目の引数は実際のメッセージ本文(ペイロード)を表します。

実行例

Redis SUBSCRIBEコマンド徹底解説 – Pub/Subで複数チャネルを同時に購読する方法

参考資料

  1. SUBSCRIBEコマンド公式ドキュメント

以上が、redis-cliを使ってRedisメッセージブローカー上の1つまたは複数のチャネルを購読する方法の解説でした。この記事がお役に立てた場合は、コメント欄でぜひご意見をお聞かせください。また、他の方にもシェアしていただけると嬉しいです。

  1. JedisライブラリでRedisのPub/Subシステムを実装する方法【Javaサンプルコード付き】

    このチュートリアルでは、Java向けクライアントライブラリ「Jedis」を使用して、RedisのPub/Sub(パブリッシュ/サブスクライブ)システムを実装する方法を解説します。 Jedisライブラリとは Jedisは、Redisデータストア用のJavaクライアントライブラリです。軽量で非常に扱いやすく、Redis 2.8.x、3.x.x以降のバージョンと完全な互換性があります。シンプルなAPI设计で、Redisの各種コマンドを直感的に操作できるのが特徴です。 RedisのPub/Subシステムとは Redisは、Publish/Subscribe(パブリッシュ/サブスクライブ)型のメッセージ

  2. 複数の Microsoft Teams チャネルを別々のウィンドウで開く方法

    Microsoft Teamsには最近、チャットを別ウィンドウにポップアウトして表示できる機能が追加されましたが、「チャネルでも同じことができれば便利なのに」と感じている方も多いのではないでしょうか。現時点では公式には対応していませんが、メッセージ確認のために画面を行き来する手間を省ける、便利な回避策があります。マイクロソフト社員のKevin Stratvert氏が動画で紹介しているこのテクニックは、TeamsのPWA(プログレッシブウェブアプリ)版をセットアップするというものです。この記事ではその設定方法を解説し、快適なマルチタスク環境の構築をお手伝いします。ステップ1:Microsoft