XGROUP

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

コンシューマーグループ(consumer group)

コンシューマーグループは コンシューマー(Consumer)を指定してデータを読め、 コンシューマーが読んだデータを正しく処理したか確認でき、 正しく処理できていなければ他のコンシューマーに割り当てて処理する方法を提供します。

XGROUP コマンドには次の機能があります。

  • コンシューマーグループを作る
  • コンシューマーグループを削除する
  • コンシューマーを削除する
  • ID を再指定する

コンシューマーグループを作る

使い方は XGROUP CREATE key group id-or-$ です。

Example

コマンド>XGROUP CREATE sensor-1234 CG-A 0
コマンド>XGROUP CREATE sensor-1234 CG-B 1538568728545
コマンド>XGROUP CREATE sensor-1234 CG-C $
  • 1つ目のコマンドはコンシューマーグループ名を CG-A とし、ID を 0 に指定して sensor-1234 ストリームの最初のデータから読むよう設定しました。
  • 2つ目のコマンドはコンシューマーグループ名を CG-B とし、特定 ID を指定してこの ID の次のデータから読むよう設定しました。
  • 3つ目のコマンドは特別な ID '$' を使い、このコマンド実行後に入ってきたデータから読むよう設定しました。
  • 正常に作成されると 'OK' を返します。

コンシューマーグループを削除する

コンシューマーグループを削除します。ペンディング(pending)データがあっても削除されます。
使い方は XGROUP DESTROY key group です。

Example

コマンド>XGROUP DESTROY sensor-1234 CG-A

正常に削除されると 1 を返します。存在しないコンシューマーグループを指定すると 0 を返します。

コンシューマーを削除する

コンシューマーを削除します。コンシューマーは XREADGROUP コマンドでデータを読むときにコンシューマーを指定すると自動で作られます。
使い方は XGROUP DELCONSUMER key group consumer です。

Example

コマンド>XGROUP DELCONSUMER sensor-1234 CG-A consumer

削除するコンシューマーにペンディングデータがある場合、その件数を返します。 そうでなければ 0 を返します。 存在しないコンシューマーを指定した場合も 0 を返します。

ID を再指定する

XREADGROUP コマンドで読み始める ID を再指定します。最初の ID 指定は XGROUP CREATE コマンドで行います。
使い方は XGROUP SETID key group id-or-$ です。

Example

コマンド>XGROUP SETID sensor-1234 CG-A 0
コマンド>XGROUP SETID sensor-1234 CG-A 1538568728545
コマンド>XGROUP SETID sensor-1234 CG-A $

正常に処理されると 'OK' を返します。


構文

XGROUP
[CREATE key group id-or-$]
[DESTROY key group]
[DELCONSUMER key group consumer]
[SETID key group id-or-$]

  • このコマンドは version 5.0.0 から使用できます。
  • 時間計算量は O(log(N)) です。N はストリームに保存されているエントリ(ID)の個数です。
    DESTROY の場合、削除するペンディングデータがあればその件数分さらにかかります。O(M)
  • 戻り値はサブコマンド(subcommand)ごとに異なります。

<< XTRIM XGROUP XREADGROUP >>

Email 返事がかかってなれば、メールでお知らせします。