すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):Roaring

最終更新日:Nov 09, 2025

TairRoaring は、Roaring ビットマップ用の Tair ベースのデータ構造です。このトピックでは、TairRoaring とそのサポートされているコマンドについて説明します。

TairRoaring の概要

ビットマップ (ビットセットとも呼ばれます) は、少量のストレージを使用して大量のデータのクエリを最適化する一般的なデータ構造です。ビットマップはハッシュベースの実装よりもスペースを節約しますが、疎なデータの保存には適していません。この問題に対応して、圧縮ビットマップが開発されました。Roaring ビットマップは、他の圧縮ビットマップよりも効率的でバランスの取れた、業界で認められているビットマップタイプです。

TairRoaring は、次の方法で Roaring ビットマップを最適化します:

  • TairRoaring は、2 レベルのインデックスと動的コンテナーを使用することで、多くのシナリオでパフォーマンスと空間計算量のバランスを取ることができます。

  • TairRoaring は、単一命令複数データ (SIMD)、ベクトル化、popcount アルゴリズムなどの最適化技術を使用して、計算効率を向上させ、効率的な時間と空間計算量を提供します。

  • TairRoaring は、Tair が提供する強力な計算パフォーマンスと高い安定性を活用して、ビジネスシナリオをサポートします。

典型的なシナリオ

TairRoaring は、ライブストリーミング、音楽、e コマースなどの業界での使用に適しています。TairRoaring を使用して、パーソナライズされた推奨や精密マーケティングなどのシナリオのために、ユーザーに多次元タグを追加できます。

リリースノート

重要

TairRoaring V2 の変更点:

  • TR.RANGEINTARRAY: TairRoaring V1 の TR.RANGEINTARRAY は、TairRoaring V2 では TR.RANGE に変更されました。

  • TR.SETRANGE: V1 でのコマンドの出力は OK であり、V2 での出力は 1 に設定されたビット数です。コマンドの他の側面は変更されていません。

  1. 2021 年 9 月 13 日に、マイナーバージョン 1.7.20 以降を実行するインスタンス向けに TairRoaring V1 がリリースされました。

  2. 2022 年 3 月 11 日に、マイナーバージョン 1.7.27 以降を実行するインスタンス向けに TairRoaring V2 がリリースされました。

    TairRoaring V2 は、一部のコマンド実装を最適化し、コマンドのパフォーマンスを向上させます。TairRoaring V2 には、TR.SETBITS と TR.CLEARBITS を含む 9 つの新しいコマンドが含まれ、3 つのコマンドが更新され、そのうち 2 つは TairRoaring V1 と互換性があり、1 つのコマンドの名前が変更されます。

  3. 2022 年 4 月 20 日に、マイナーバージョン 1.8.1 以降を実行するインスタンス向けに TairRoaring V2.2 がリリースされました。

    このバージョンでは、TR.JACCARD、TR.CONTAINS、および TR.RANK コマンドが追加され、キーが存在しない場合に一部のコマンドで返されるエラーが更新されます (ERR key not found エラーは削除されます)。

ベストプラクティス

TairRoaring を使用したオーディエンスセグメンテーション

要件

インスタンスは Tair メモリ最適化インスタンスです。メモリ最適化インスタンスが Redis 5.0 と互換性がある場合、マイナーバージョンは 1.7.7 以降である必要があります。

説明

最新のマイナーバージョンは、より多くの機能と高い安定性を提供します。インスタンスを最新のマイナーバージョンに更新することをお勧めします。詳細については、「インスタンスのマイナーバージョンを更新する」をご参照ください。インスタンスがクラスターインスタンスまたは読み書き分離インスタンスである場合は、すべてのコマンドが期待どおりに実行されるように、インスタンスのプロキシノードを最新のマイナーバージョンに更新することをお勧めします。

使用上の注意

この操作は、Tair インスタンスの TairRoaring データに適用されます。

コマンドリスト

タイプ

コマンド

構文

説明

バージョン変更

書き込み操作

TR.SETBIT

TR.SETBIT key offset value

TairRoaring キーの指定されたビットを 1 または 0 の値に設定し、元のビット値を返します。オフセットは 0 から始まります。

- (N/A)

TR.SETBITS

TR.SETBITS key offset [offset1 offset2 ... offsetN]

TairRoaring キーの指定されたビットの値を 1 に設定します。複数のビット値を指定できます。

V2 で追加

TR.CLEARBITS

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

TairRoaring キーの指定されたビットの値を 0 に設定します。指定されたビットの値がすでに 0 の場合、操作は実行されません。複数のビット値を指定できます。

V2 で追加

TR.SETRANGE

TR.SETRANGE key start end

TairRoaring キーの指定された範囲内のビットを 1 の値に設定します。範囲は閉区間です。

V2 で更新。V2 でのコマンド更新後、コマンドの出力は 1 に設定されたビット数に変更されます。

TR.APPENDBITARRAY

TR.APPENDBITARRAY key offset bitarray

Roaring Bitmap の指定されたビットの後の位置にビット配列を挿入し、元のデータを上書きします。ビット配列は 0 と 1 で構成されます。

V2 で追加

TR.FLIPRANGE

TR.FLIPRANGE key start end

TairRoaring キーの指定された範囲内のビットの値を 0 から 1 に、または 1 から 0 に切り替えます。範囲は閉区間です。キーが存在しない場合、キーは空のデータセットとして作成され、そのキーに対して操作が実行されます。

V2 で追加

TR.APPENDINTARRAY

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

TairRoaring キーの指定されたビットの値を 1 に設定します。複数のビット値を指定できます。

説明

TairRoaring V2 では、このコマンドの代わりに TR.SETBITS を使用することをお勧めします。

-

TR.SETINTARRAY

TR.SETINTARRAY key value [value1 value2 ... valueN]

指定された整数配列に基づいて TairRoaring キーを作成します。キーがすでに存在する場合、このコマンドはキーのデータを上書きします。

説明

TairRoaring V2 では、このコマンドの代わりに TR.SETBITS を使用することをお勧めします。

-

TR.SETBITARRAY

TR.SETBITARRAY key value

指定されたビット配列文字列に基づいて TairRoaring キーを作成します。ビット配列文字列は 0 と 1 で構成されます。キーがすでに存在する場合、このコマンドはキーのデータを上書きします。

説明

TairRoaring V2 では、このコマンドの代わりに TR.APPENDBITARRAY を使用することをお勧めします。

-

TR.BITOP

TR.BITOP destkey operation key [key1 key2 ... keyN]

Roaring Bitmap に対してセット操作を実行し、結果を destkey に保存します。このコマンドは、ANDORXORNOT、および DIFF 操作をサポートします。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

-

TR.BITOPCARD

TR.BITOPCARD operation key [key1 key2 ... keyN]

複数の TairRoaring キーに対してビットごとの演算を実行します。ANDORXORNOT、および DIFF のビットごとの演算がサポートされています。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

V2 で追加

TR.OPTIMIZE

TR.OPTIMIZE key

TairRoaring キーのストレージを最適化します。キーが比較的に大きく、キーの作成後に主に読み取り操作に使用される場合は、このコマンドを実行できます。

-

読み取り操作

TR.GETBIT

TR.GETBIT key offset

TairRoaring キーから指定されたビットの値を取得します。

-

TR.GETBITS

TR.GETBITS key offset [offset1 offset2 ... offsetN]

TairRoaring キーから指定されたビットの値を取得します。値の取得には複数のビットを指定できます。

V2 で追加

TR.BITCOUNT

TR.BITCOUNT key [start end]

TairRoaring キーの指定された範囲内で値が 1 のビット数をカウントします。範囲は閉区間です。

V2 で更新され、上位互換性があります。

TR.BITPOS

TR.BITPOS <key> <value> [count]

序数が count のビットのオフセットを取得します。ビットの値は 1 または 0 です。count パラメーターはオプションで、デフォルト値は 1 です。値 1 は、左から右へのカウント方法を使用して取得された最初のビットを示します。

V2 で更新され、上位互換性があります。

TR.SCAN

TR.SCAN key start_offset [COUNT count]

TairRoaring キー内の指定されたビットの後に位置するすべてのビットをスキャンし、値が 1 のスキャンされたビットの数に対応するオフセットを返します。返されるカーソルは、キーに対応するオフセットです。

説明

このコマンドは、追加または削除された要素をスキャンして返す場合と返さない場合があります。

V2 で追加

TR.RANGE

TR.RANGE key start end

TairRoaring キーの指定された範囲内で値が 1 のビットのオフセットを返します。範囲は閉区間です。

V1 の TR.RANGEINTARRAY から V2 で TR.RANGE に名前が変更されました。

TR.RANGEBITARRAY

TR.RANGEBITARRAY key start end

TairRoaring キーの指定された範囲内で 0 と 1 のビット値で構成される文字列を取得します。範囲は閉区間です。

V2 で追加

TR.MIN

TR.MIN key

TairRoaring キーで値が 1 の最初のビットのオフセットを取得します。値が 1 のビットがない場合、-1 の値が返されます。

-

TR.MAX

TR.MAX key

Roaring Bitmap で値が 1 の最後のビットのオフセットを取得します。値が 1 のビットがない場合、-1 が返されます。

-

TR.STAT

TR.STAT key [JSON]

指定された TairRoaring キーの統計情報を返します。情報には、コンテナーの数とメモリ使用量が含まれます。

V2 で追加

TR.JACCARD

TR.JACCARD key1 key2

2 つの TairRoaring キーのジャカード類似係数を取得します。係数が高いほど、類似性が高くなります。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

V2.2 で追加

TR.CONTAINS

TR.CONTAINS key1 key2

key2 に key1 が含まれているかどうかを確認します。はいの場合、key1 は key2 のサブセットであり、値 1 が返されます。それ以外の場合、key1 は key2 のサブセットではなく、値 0 が返されます。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

V2.2 で追加

TR.RANK

TR.RANK key offset

最初のビットから指定されたビットまでの範囲内で値が 1 のビット数を取得します。範囲は閉区間です。

V2.2 で追加

汎用操作

DEL

DEL key [key ...]

1 つ以上の TairRoaring キーを削除します。

-

説明
  • 次のセクションでは、コマンドの構文について説明します:

    • 大文字のキーワード: コマンドのキーワードを示します。

    • イタリック体のテキスト: 変数を示します。

    • [options]: 囲まれたパラメーターがオプションであることを示します。角括弧で囲まれていないパラメーターは指定する必要があります。

    • A|B: 縦棒 (|) で区切られたパラメーターが相互に排他的であることを示します。パラメーターのいずれか 1 つのみを指定できます。

    • ...: この記号の前のパラメーターを繰り返し指定できることを示します。

  • このトピックでは、時間計算量の式で使用される文字は、トピック固有の意味を示します:

    • C は、パラメーターの argc または範囲を示します。

    • M は、リスト内のノード数やハッシュ内のフィールド数など、データ構造内で 1 に設定されたビット数を示します。

TR.SETBIT

カテゴリ

説明

構文

TR.SETBIT key offset value

時間計算量

O(1)

コマンドの説明

TairRoaring キーの指定されたビットを 1 または 0 の値に設定し、元のビット値を返します。オフセットは 0 から始まります。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • offset: 設定するビットのオフセットを表す整数で、値の範囲は 0 ~ 2^32 です。

  • value: 設定するビット値で、1 または 0 のいずれかです。

出力

  • 操作が成功した場合、0 または 1 のビット値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.SETBIT foo 0 1

出力例:

(integer) 0

TR.SETBITS

項目

説明

構文

TR.SETBITS key offset [offset1 offset2 ... offsetN]

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定されたビットの値を 1 に設定します。複数のビット値を指定できます。

オプション

  • Key: キー名 (TairRoaring データ構造)。

  • offset: 設定するビットのオフセットを表す整数で、値の範囲は 0 ~ 2^32 です。

出力

  • 操作が成功した場合、キー内で 1 に設定されているビット数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.SETBITS foo 9 10

出力例:

(integer) 5

TR.CLEARBITS

項目

説明

構文

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定されたビットの値を 0 に設定します。指定されたビットの値がすでに 0 の場合、操作は実行されません。複数のビット値を指定できます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • offset: 設定するビットのオフセットを表す整数で、値の範囲は 0 ~ 2^32 です。

出力

  • 操作が成功した場合、キー内で 0 に設定されたビット数が返されます。

  • キーが存在しない場合、値 0 が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.CLEARBITS foo 9 10

出力例:

(integer) 2

TR.SETRANGE

項目

説明

構文

TR.SETRANGE key start end

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定された範囲内のビットを 1 の値に設定します。範囲は閉区間です。

たとえば、TR.SETRANGE foo 1 3 コマンドを実行すると、システムは 0111 foo キーを作成します。

オプション

  • Key: キー名 (TairRoaring データ構造)。

  • start: 間隔の開始値。有効な値: 0 から 2^32。

  • end: 間隔の終了値。有効な値: 0 から 2^32。

出力

  • 操作が成功した場合、キー内で 1 に設定されているビット数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.SETRANGE foo 1 3

出力例:

(integer) 3

TR.APPENDBITARRAY

項目

説明

構文

TR.APPENDBITARRAY key offset bitarray

時間計算量

O(C)

コマンドの説明

Roaring Bitmap の指定されたビットの後の位置にビット配列を挿入し、元のデータを上書きします。ビット配列は 0 と 1 で構成されます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • offset: 指定された開始オフセット (この値は含まない)。値の範囲は -1 ~ 2^32 です。

  • bitarray: 追加するビット配列。既存のデータを上書きします。連続する 0 または 1 で構成され、値の範囲は 0 ~ 2^32 です。

    説明

    指定されたオフセットと追加されたビット配列の合計長は 2^32 を超えることはできません。超えた場合、操作は失敗します。

出力

  • 操作が成功した場合、キー内で 1 に設定されているビット数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS foo 0 コマンドを実行します。

コマンド例:

TR.APPENDBITARRAY foo 1 1101

出力例:

(integer) 4

この場合、TairRoaring foo キーは "101101" です。

TR.FLIPRANGE

項目

説明

構文

TR.FLIPRANGE key start end

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定された範囲内のビットの値を 0 から 1 に、または 1 から 0 に切り替えます。範囲は閉区間です。キーが存在しない場合、キーは空のデータセットとして作成され、そのキーに対して操作が実行されます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • start: 開始オフセット (含む)。値の範囲は 0 から 2^32 です。

  • end: 終了オフセット (含む)。値の範囲は 0 から 2^32 です。

出力

  • 操作が成功した場合、キー内で 1 に設定されたビット数が返されます。

  • キーが存在しない場合、キーは空のデータセットとして作成され、そのキーに対して操作が実行されます。操作が成功した場合、キー内で 1 に設定されたビット数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS foo 0 2 3 5 コマンドを実行します。

コマンド例:

TR.FLIPRANGE foo 0 5

出力例:

(integer) 2

この場合、TairRoaring foo キーは "01001" です。

TR.APPENDINTARRAY

項目

説明

構文

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定されたビットの値を 1 に設定します。複数のビット値を指定できます。

説明

TairRoaring V2 では、このコマンドの代わりに TR.SETBITS を使用することをお勧めします。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • value: 処理したいビットの整数オフセット。有効な値: 0 から 4294967296。

出力

  • 操作が成功した場合、OK が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.APPENDINTARRAY foo 9 10

出力例:

OK

TR.SETINTARRAY

項目

説明

構文

TR.SETINTARRAY key value [value1 value2 ... valueN]

時間計算量

O(C)

コマンドの説明

指定された整数配列に基づいて TairRoaring キーを作成します。キーがすでに存在する場合、このコマンドはキーのデータを上書きします。

説明

TairRoaring V2 では、このコマンドの代わりに TR.SETBITS を使用することをお勧めします。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • value: 設定するビット位置を指定する整数。

出力

  • 操作が成功した場合、OK が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.SETINTARRAY foo 2 4 5 6

出力例:

OK

TR.SETBITARRAY

項目

説明

構文

TR.SETBITARRAY key value

時間計算量

O(C)

コマンドの説明

指定されたビット配列文字列に基づいて TairRoaring キーを作成します。ビット配列文字列は 0 と 1 で構成されます。キーがすでに存在する場合、このコマンドはキーのデータを上書きします。

説明

TairRoaring V2 では、このコマンドの代わりに TR.APPENDBITARRAY を使用することをお勧めします。

パラメーター

  • key: このコマンドを実行して管理するキー。

  • value: ビット配列を表す 0 と 1 の文字列。

出力

  • 操作が成功した場合: OK が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

tr.setbitarray foo 10101001

出力例:

OK 

TR.BITOP

項目

説明

構文

TR.BITOP destkey operation key [key1 key2 ... keyN]

時間計算量

O(C * M)

コマンドの説明

Roaring Bitmap に対してセット操作を実行し、結果を destkey に保存します。このコマンドは、ANDORXORNOT、および DIFF 操作をサポートします。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

オプション

  • destkey: 結果を保存する宛先キー (TairRoaring データ構造)。

  • operation: セット操作のタイプ。有効な値: AND (論理積)、OR (論理和)、XOR (排他的論理和)、NOT (論理否定)、および DIFF (差分)。

    説明
    • NOT 操作は単一のキーに対してのみ実行できます。

    • DIFF 操作は 2 つのキーに対してのみ実行できます。キーの順序に注意してください。たとえば、TR.BITOP result DIFF key1 key2 コマンドは key1 から key2 を減算します (key1 - key2)。

  • key: TairRoaring データ構造のキー。複数のキーを指定できます。

出力

  • 操作が成功した場合、結果内で 1 に設定されているビットの整数値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.BITOP result OR foo bar

出力例:

(integer) 6

TR.BITOPCARD

項目

説明

構文

TR.BITOPCARD operation key [key1 key2 ... keyN]

時間計算量

O(C * M)

コマンドの説明

複数の TairRoaring キーに対してビットごとの演算を実行します。ANDORXORNOT、および DIFF のビットごとの演算がサポートされています。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

options

  • operation: セット操作のタイプ。有効な値: AND、OR、XOR、NOT、および DIFF。

    説明
    • NOT 操作は単一のキーに対してのみ実行できます。

    • DIFF 操作は 2 つのキーの差のみを計算できます。差を計算するための操作の順序に注意してください。たとえば、TR.BITOP result DIFF key1 key2 コマンドは、key2 に対する key1 の差 (key1 - key2) を計算します。

  • key: キー名 (TairRoaring データ構造)。複数のキーを指定できます。

出力

  • 操作が成功した場合、結果内で 1 に設定されているビットの整数値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.BITOPCARD NOT foo

出力例:

(integer) 2

TR.OPTIMIZE

項目

説明

構文

TR.OPTIMIZE key

時間計算量

O(M)

コマンドの説明

TairRoaring キーのストレージを最適化します。キーが比較的に大きく、キーの作成後に主に読み取り操作に使用される場合は、このコマンドを実行できます。

オプション

  • Key: キー名 (TairRoaring データ構造)。

出力

  • 操作が成功した場合、OK が返されます。

  • キーが存在しない場合、nil が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.OPTIMIZE foo

出力例:

OK

TR.GETBIT

項目

説明

構文

TR.GETBIT key offset

時間計算量

O(1)

コマンドの説明

TairRoaring キーから指定されたビットの値を取得します。

オプション

  • Key: キー名 (TairRoaring データ構造)。

  • offset: クエリするオフセット。

出力

  • 操作が成功した場合、0 または 1 の値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.GETBIT foo 0

出力例:

(integer) 1

TR.GETBITS

項目

説明

構文

TR.GETBITS key offset [offset1 offset2 ... offsetN]

時間計算量

O(C)

コマンドの説明

TairRoaring キーから指定されたビットの値を取得します。値の取得には複数のビットを指定できます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • offset: クエリするオフセット。

出力

  • 操作が成功した場合、ビット値が返されます。

  • キーが存在しない場合、空の配列が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.GETBITS foo 3 4 6 8

出力例:

1) (integer) 1
2) (integer) 1
3) (integer) 1
4) (integer) 0

TR.BITCOUNT

項目

説明

構文

TR.BITCOUNT key [start end]

時間計算量

O(M)

コマンドの説明

TairRoaring キーの指定された範囲内で値が 1 のビット数をカウントします。範囲は閉区間です。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • start: 開始オフセット (含む)。値の範囲は 0 から 2^32 です。

  • end: 終了オフセット (含む)。値の範囲は 0 から 2^32 です。

出力

  • 操作が成功した場合、キー内で 1 に設定されているビットの整数値が返されます。

  • キーが存在しない場合、値 0 が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.BITCOUNT foo 4 9

出力例:

(integer) 3

TR.BITPOS

項目

説明

構文

TR.BITPOS <key> <value> [count]

時間計算量

O(C)

コマンドの説明

序数が count のビットのオフセットを取得します。ビットの値は 1 または 0 です。count パラメーターはオプションで、デフォルト値は 1 です。値 1 は、左から右へのカウント方法を使用して取得された最初のビットを示します。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • value: オフセットを取得したいビットの値。ビット値は 0 または 1 です。

  • count: ビットの序数。負の数は、右から左へのカウント方法が使用されることを示します。

出力

  • 操作が成功した場合、値が 1 または 0 のビットのオフセットが返されます。

  • キーが存在しない場合、値 -1 が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.BITPOS foo 1 -1

出力例:

(integer) 6

TR.SCAN

項目

説明

構文

TR.SCAN key start_offset [COUNT count]

時間計算量

O(C)

コマンドの説明

TairRoaring キー内の指定されたビットの後に位置するすべてのビットをスキャンし、値が 1 のスキャンされたビットの数に対応するオフセットを返します。返されるカーソルは、キーに対応するオフセットです。

説明

このコマンドは、追加または削除された要素をスキャンして返す場合と返さない場合があります。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • start_offset: ビットのオフセット。このオフセットに一致するビットがスキャンされます。

  • COUNT: クエリするビット数。デフォルト値: 10。

出力

  • 操作が成功した場合、2 つの要素を含む配列が返されます:

    • 最初の要素は、次の start_offset 値です。キーがスキャンされた場合、値 0 が返されます。

    • 2 番目の要素: 現在のクエリのターゲットオフセット。

    説明

    キーが存在しない場合、0 と空の要素で構成される配列が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.SCAN foo 0 COUNT 2

出力例:

1) (integer) 3
2) 1) (integer) 0
   2) (integer) 2

TR.RANGE

カテゴリ

説明

構文

TR.RANGE key start end

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定された範囲内で値が 1 のビットのオフセットを返します。範囲は閉区間です。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • start: 間隔の開始値 (含む)。

  • end: 間隔の終了値 (含む)。

出力

  • 操作が成功した場合、値が 1 のビットのオフセットが返されます。

  • キーが存在しない場合、空の配列が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS foo 0 2 3 5 コマンドを実行します。

コマンド例:

TR.RANGE foo 0 5

出力例:

1) (integer) 0
2) (integer) 2
3) (integer) 3
4) (integer) 5

TR.RANGEBITARRAY

項目

説明

構文

TR.RANGEBITARRAY key start end

時間計算量

O(C)

コマンドの説明

TairRoaring キーの指定された範囲内で 0 と 1 のビット値で構成される文字列を取得します。範囲は閉区間です。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • start: 間隔の開始値 (含む)。

  • end: 間隔の終了値 (含む)。

出力

  • 操作が成功した場合、値が 1 のビットのオフセットが返されます。

  • キーが存在しない場合、nil が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS foo 0 2 3 5 コマンドを実行します。

コマンド例:

TR.RANGEBITARRAY foo 0 5

出力例:

"101101"

TR.MIN

項目

説明

構文

TR.MIN key

時間計算量

O(1)

コマンドの説明

TairRoaring キーで値が 1 の最初のビットのオフセットを取得します。値が 1 のビットがない場合、-1 の値が返されます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

出力

  • 操作が成功した場合:

    • キーに値が 1 のビットが存在する場合、値が 1 の最初のビットの整数オフセットが返されます。

    • キーに値が 1 のビットが存在しない場合、またはキーが存在しない場合、-1 の値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.MIN foo

出力例:

4

TR.MAX

項目

説明

構文

TR.MAX key

時間計算量

O(1)

コマンドの説明

Roaring Bitmap で値が 1 の最後のビットのオフセットを取得します。値が 1 のビットがない場合、-1 が返されます。

オプション

  • Key: キー名 (TairRoaring データ構造)。

出力

  • 操作が成功した場合:

    • キーに値が 1 のビットが存在する場合、値が 1 の最後のビットの整数オフセットが返されます。

    • キーに値が 1 のビットが存在しない場合、またはキーが存在しない場合、-1 の値が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.MAX foo

出力例:

6

TR.STAT

項目

説明

構文

TR.STAT key [JSON]

時間計算量

O(M)

コマンドの説明

指定された TairRoaring キーの統計情報を返します。情報には、コンテナーの数とメモリ使用量が含まれます。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

  • JSON: このパラメーターが指定されている場合、統計情報は JSON 形式で返されます。

出力

  • 操作が成功した場合、次の出力が返されます:

    "{\"cardinality\":3,                    # キー内の要素の総数
    \"number_of_containers\":1,             # キー内のコンテナーの総数
    \"max_value\":6,                        # キー内の最大要素値
    \"min_value\":3,                        # キー内の最小要素値
    \"sum_value\":13,
    \"array_container\":{                   # キー内の配列コンテナーの数
        \"number_of_containers\":1,
        \"container_cardinality\":3,
        \"container_allocated_bytes\":6},
    \"bitset_container\":{                  # キー内のビットセットコンテナーの数
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0},
    \"run_container\":{                     # キー内のランコンテナーの数
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0}}"
    
                                            
  • キーが存在しない場合、nil が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.STAT foo JSON

出力例:

"{\"cardinality\":4,\"number_of_containers\":1,\"max_value\":5,\"min_value\":0,\"sum_value\":10,\"array_container\":{\"number_of_containers\":1,\"container_cardinality\":4,\"container_allocated_bytes\":8},\"bitset_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0},\"run_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0}}"

TR.JACCARD

項目

説明

構文

TR.JACCARD key1 key2

時間計算量

O(M)

コマンドの説明

2 つの TairRoaring キーのジャカード類似係数を取得します。係数が高いほど、類似性が高くなります。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

パラメーター

  • Key: キー名 (TairRoaring データ構造)。

出力

  • 操作が成功した場合、double 型のジャカード類似係数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

コマンド例:

TR.JACCARD foo1 foo2

出力例:

"0.20000000000000001"

TR.CONTAINS

カテゴリ

説明

構文

TR.CONTAINS key1 key2

時間計算量

O(M)

コマンドの説明

key2 に key1 が含まれているかどうかを確認します。はいの場合、key1 は key2 のサブセットであり、値 1 が返されます。それ以外の場合、key1 は key2 のサブセットではなく、値 0 が返されます。

説明

このコマンドは、クラスターインスタンスのスロットをまたいで存在するキーには使用できません。

options

  • Key: キー名 (TairRoaring データ構造)。

出力

  • 操作が成功した場合:

    • key2 に key1 が含まれている場合、値 1 が返されます。

    • key2 に key1 が含まれていない場合、値 0 が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS fooM 1 2 3 10 および TR.SETBITS foom 1 2 コマンドを実行します。

コマンド例:

TR.CONTAINS foom fooM

出力例:

(integer) 1

TR.RANK

項目

説明

構文

TR.RANK key offset

時間計算量

O(M)

コマンドの説明

最初のビットから指定されたビットまでの範囲内で値が 1 のビット数を取得します。範囲は閉区間です。

オプション

  • Key: キー名 (TairRoaring データ構造)。

  • offset: 指定されたビットのオフセット。値は整数である必要があります。

出力

  • 操作が成功した場合、値が 1 のビット数が返されます。

  • それ以外の場合は、エラーメッセージが返されます。

事前に TR.SETBITS fooM 1 2 3 10 コマンドを実行します。

コマンド例:

TR.RANK fooM 10

出力例:

(integer) 4

エラーメッセージ

エラーメッセージ

説明

WRONGTYPE Operation against a key holding the wrong kind of value

不正なオブジェクトタイプ: キーは TairRoaring オブジェクトではありません。

ERR bad arguments, must be unsigned 32-bit integer

不正なパラメータータイプ: パラメーター値を 32 ビット整数に変換できません。

ERR invalid arguments, maybe out of range or illegal

無効なパラメーター:

  • オフセットが 32 ビット整数ではありません。

  • 開始オフセットと終了オフセットが無効です。

  • パラメーター値が TairRoaring キーで許可されている最大要素数を超えています。

ERR key already exist

TairRoaring キーはすでに存在しており、そのデータを上書きすることはできません。

説明

このエラーは TairRoaring V2.2 で修正されました。

ERR key not found

Roaring Bitmap オブジェクトが存在しません。この操作はサポートされていません。

説明

このエラーは TairRoaring V2.2 で修正されました。