表題の通り。先日のエントリで『RedisのPUBSUBコマンドは後から追加されている』という事を書いた。実際にどういう結果を得られるのか確認してみる。
■ 環境
■ HELPを確認
HELPコマンドで確認してみる。
127.0.0.1:6379> HELP PUBSUB
PUBSUB subcommand [argument [argument ...]]
summary: Inspect the state of the Pub/Sub subsystem
since: 2.8.0
group: pubsub
127.0.0.1:6379>
これだけではよくわからない。”subcommand“には何が指定できるのか?これより詳細なHELPを確認したいのだが方法がわからないので公式ページのマニュアルを参照する。
■ subcommand
PUBSUBコマンドの”subcommand”に指定できるのは下記の3つのようである。
それぞれ確認してみる。
■ CHANNELS
PUBSUB CHANNELS [pattern]
チャンネルの一覧を取得することができる。サブコマンドの名称からもイメージが付きやすいだろう。別のターミナルでSUBSCRIBEコマンドを使用してチャンネルを登録した後に実行してみると下記のような結果になる。
127.0.0.1:6379> pubsub channels
1) "test"
127.0.0.1:6379>
“test“チャンネルが存在している事がわかる。”pattern“でも出来るとの事なので試してみる。
127.0.0.1:6379> pubsub channels t*
1) "test"
127.0.0.1:6379>
“pattern“に一致するチャンネルが全て取得できるようだ。ちなみにチャンネルが一つも存在しない状態で試してみると下記のような結果となる。
127.0.0.1:6379> pubsub channels
(empty list or set)
127.0.0.1:6379>
ここからもオンラインでのPub/Subとしてのみ使用可能だという事がわかるであろう。
■ NUMSUB
PUBSUB NUMSUB [channel-1 ... channel-N]
指定したチャンネルを登録(SUBSCRIBE)しているクライアントの数を取得できる。
127.0.0.1:6379> pubsub numsub test test2
1) "test"
2) (integer) 1
3) "test2"
4) (integer) 0
127.0.0.1:6379>
“test“チャンネルを登録しているクライアントは”1“、”test2“チャンネルを登録しているクライアントは”0“である事がわかる。
■ NUMPAT
PUBSUB NUMPAT
いくつの”pattern“が登録されているかを取得する事ができる。まずは登録側は下記のようにPSUBSCRIBEコマンドで登録してみている。
127.0.0.1:6379> psubscribe test* aha*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "test*"
3) (integer) 1
1) "psubscribe"
2) "aha*"
3) (integer) 2
上記のように2つの”pattern“を登録してみたところ、下記のような結果を得る事ができた。
127.0.0.1:6379> pubsub numpat
(integer) 2
127.0.0.1:6379>
“pattern“数はわかるが、実際にどういった”pattern“が登録されているかはわからないようである。少々コマンドとしては微妙な感じがしなくもない。
以上。
■ 関連