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

Tair (Redis® OSS-Compatible):轟音

最終更新日:Sep 12, 2024

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

概要

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

Roaringビットマップは、TairRoaringで次の方法で最適化されます。

  • TairRoaringは、2レベルのインデックスと動的コンテナを使用することで、多数のシナリオでパフォーマンスとスペースの複雑さのバランスをとることができます。

  • TairRoaringは、単一命令、複数データ (SIMD) 、ベクトル化、およびpopcountアルゴリズムなどの最適化技術を使用して、計算効率を改善し、効率的な時間と空間の複雑さを実現します。

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

典型的なシナリオ

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

リリースノート

重要

TairRoaring V2の変更:

  • TR.RANGEINTARRAY: TairRoaring V1のTR.RANGEINTARRAYをTairRoaring V2のTR.RANGEに変更する。

  • TR.SETRANGE: TR.SETRANGEの出力は、TairRoaring V1でOKから、TairRoaring 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がリリースされました。

    TairRoaring V2.2には、TR.JACCARD、TR.CONTAINS、TR.RANKの3つの新しいコマンドが付属しています。 このバージョンでは、データベースに存在しないキーに対して特定のコマンドが発行されたときに返されるエラーも変更されます。 たとえば、ERR key not foundというエラーメッセージは削除されます。

ベストプラクティス

TairRoaringによるユーザーの選択

前提条件

マイナーバージョン1.7.7以降を実行するTair DRAMベースのインスタンスが作成されます。

説明

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

使用上の注意

管理するTairRoaringキーは、Tairインスタンスに保存されます。

サポートされるコマンド

データ型

コマンド

構文

説明

バージョン変更

書き込み操作

TR.SETBIT

TR.SETBITキーオフセット値

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

- (N/A)

TR.SETBITS

TR.SETBITSキーオフセット [offset1 offset2 ... offsetN]

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

V2で追加されました。

TR. クリアビット

TR.CLEARBITSキーオフセット [offset1 offset2 ... offsetN]

TairRoaringキーの指定されたビットの値を0に設定します。 指定されたビットが既に0の値を有する場合、演算は実行されない。 複数のビットを0の値に設定できます。

V2で追加されました。

TR.SETRANGE

TR.SETRANGEキースタートエンド

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

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

TR。アペンディターレイ

TR.APPENDBITARRAYキーオフセットbitarray

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

V2で追加されました。

TR.FLIPRANGE

TR.FLIPRANGEキースタートエンド

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

V2で追加されました。

TR.APPENDINTARRAY

TR.APPENDINTARRAYキー値 [value1 value2 ... valueN]

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

説明

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

-

TR.SETINTARRAY

TR.SETINTARRAYキー値 [value1 value2 ... valueN]

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

説明

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

-

TR.SETBITARRAY

TR.SETBITARRAYキー値

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

説明

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

-

TR. ビット

TR.BITOP destkey操作キー [key1 key2 ... keyN]

複数のTairRoaringキーに対してビットごとの操作を実行し、結果を宛先キーに格納します。 ANDORXORNOT、およびDIFFビット単位の演算がサポートされています。

説明

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

-

TR. ビトプカード

TR.BITOPCARD操作キー [key1 key2 ... keyN]

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

説明

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

V2で追加されました。

TR. 最適化

TR.OPTIMIZEキー

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

-

読み取り操作

TR.GETBIT

TR.GETBITキーオフセット

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

-

TR.GETBITS

TR.GETBITSキーオフセット [offset1 offset2 ... offsetN]

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

V2で追加されました。

TR. ビットカウント

TR.BITCOUNTキー [開始終了]

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

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

TR.BITPOS

TR.BITPOS <キー> <値> [カウント]

カウントの序数を持つビットのオフセットを取得します。 ビットは、1または0の値を有することができる。 countパラメーターはオプションで、デフォルト値は1です。 1の値は、左 − 右計数アプローチを使用することによって検索された最初のビットを示す。

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

TR. スキャン

TR.SCANキーstart_offset [カウント数]

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

説明

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

V2で追加されました。

TR. レンジ

TR.RANGEキー開始終了

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

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

TR.RANGEBITARRAY

TR.RANGEBITARRAYキースタートエンド

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

V2で追加されました。

TR.MIN

TR.MINキー

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

-

TR.MAX

TR.MAXキー

TairRoaringキーで1の値を持つ最後のビットのオフセットを取得します。 1の値を有するビットがない場合、− 1が返される。

-

TR.STAT

TR.STATキー [JSON]

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

V2で追加されました。

TR. ジャカード

TR. ジャックカードkey1 key2

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

説明

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

V2.2で追加されました。

TR. 含有量

TR.CONTAINS key1 key2

key2にkey1が含まれているかどうかをチェックします。 yesの場合、key1はkey2のサブセットであり、値1が返されます。 そうでなければ、key1はkey2のサブセットではなく、0の値が返される。

説明

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

V2.2で追加されました。

TR. ランク

TR.RANKキーオフセット

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

V2.2で追加されました。

汎用操作

DEL

DELキー [キー...]

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

-

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

    • Uppercase keyword: commandキーワードを示します。

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

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

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

    • ...: このシンボルの前にあるパラメーターを繰り返し指定できることを示します。

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

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

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

TR.SETBIT

項目

説明

構文

TR.SETBITキーオフセット値

時間の複雑さ

O(1)

コマンド説明

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

パラメーター

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

  • offset: 処理するビットの整数オフセット。 有効な値: 0 ~ 2 ^ 32。

  • value: ビットに設定する値。 値は1または0に設定できます。

Output

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

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

例:

サンプルコマンド:

TR.SETBIT foo 0 1

サンプル出力:

(integer) 0

TR.SETBITS

項目

説明

構文

TR.SETBITSキーオフセット [offset1 offset2 ... offsetN]

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

  • offset: 処理するビットの整数オフセット。 有効な値: 0 ~ 2 ^ 32。

Output

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

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

例:

サンプルコマンド:

TR.SETBITS foo 9 10

サンプル出力:

(integer) 5

TR. クリアビット

項目

説明

構文

TR.CLEARBITSキーオフセット [offset1 offset2 ... offsetN]

時間の複雑さ

O(C)

コマンド説明

TairRoaringキーの指定されたビットの値を0に設定します。 指定されたビットが既に0の値を有する場合、演算は実行されない。 複数のビットを0の値に設定できます。

パラメーター

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

  • offset: 処理するビットの整数オフセット。 有効な値: 0 ~ 2 ^ 32。

Output

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

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

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

例:

サンプルコマンド:

TR.CLEARBITS foo 9 10

サンプル出力:

(integer) 2

TR.SETRANGE

項目

説明

構文

TR.SETRANGEキースタートエンド

時間の複雑さ

O(C)

コマンド説明

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

たとえば、TR.SETRANGE foo 1 3コマンドを実行すると、0111 fooキーが作成されます。

パラメーター

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

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

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

Output

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

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

例:

サンプルコマンド:

TR.SETRANGE foo 1 3

サンプル出力:

(integer) 3

TR。アペンディターレイ

項目

説明

構文

TR.APPENDBITARRAYキーオフセットbitarray

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

  • offset: 指定されたビットのオフセット。 有効な値: -1 ~ 2 ^ 32。

  • bitarray: 挿入するビット配列。 ビット配列は0と1で構成され、元のデータを上書きします。 有効な値: 0 ~ 2 ^ 32。

    説明

    指定したオフセットとビット配列の長さを2 ^ 32より長くすることはできません。 そうでない場合、操作は実行できません。

Output

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

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

例:

TR.SETBITS foo 0コマンドは予め実行される。

サンプルコマンド:

TR.APPENDBITARRAY foo 1 1101

サンプル出力:

(integer) 4

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

TR.FLIPRANGE

項目

説明

構文

TR.FLIPRANGEキースタートエンド

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

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

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

Output

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

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

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

例:

TR.SETBITS foo 0 2 3 5コマンドは予め実行される。

サンプルコマンド:

TR.FLIPRANGE foo 0 5

サンプル出力:

(integer) 2

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

TR.APPENDINTARRAY

項目

説明

構文

TR.APPENDINTARRAYキー値 [value1 value2 ... valueN]

時間の複雑さ

O(C)

コマンド説明

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

説明

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

パラメーター

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

  • value: 処理するビットの整数オフセット。 有効な値: 0 ~ 4294967296

Output

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

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

例:

サンプルコマンド:

TR。APPENDINTARRAY foo 9 10

サンプル出力:

OK

TR.SETINTARRAY

項目

説明

構文

TR.SETINTARRAYキー値 [value1 value2 ... valueN]

時間の複雑さ

O(C)

コマンド説明

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

説明

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

パラメーター

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

  • value: 処理するビットの整数オフセット。

Output

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

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

例:

サンプルコマンド:

TR.SETINTARRAY foo 2 4 5 6

サンプル出力:

OK

TR.SETBITARRAY

項目

説明

構文

TR.SETBITARRAYキー値

時間の複雑さ

O(C)

コマンド説明

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

説明

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

パラメーター

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

  • value: 0と1で構成されるビット配列文字列。

Output

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

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

例:

サンプルコマンド:

tr.setbitarray foo 10101001

サンプル出力:

OK

TR.BITOP

項目

説明

構文

TR.BITOP destkey操作キー [key1 key2 ... keyN]

時間の複雑さ

O(C * M)

コマンド説明

複数のTairRoaringキーに対してビットごとの操作を実行し、結果を宛先キーに格納します。 ANDORXORNOT、およびDIFFビット単位の演算がサポートされています。

説明

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

パラメーター

  • destkey: 結果を格納する宛先キー。

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

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

    • DIFF演算は、2つのキー間の差のみを計算する。 差を計算するための操作の順序に注意してください。 例えば、TR.BITOP結果DIFF key1 key2コマンドは、key1値からkey2値を減算する。

  • key: このコマンドを実行して管理するキー。 複数のキーを指定できます。

Output

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

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

例:

サンプルコマンド:

TR.BITOP result OR foo bar

サンプル出力:

(integer) 6

TR.BITOPCARD

項目

説明

構文

TR.BITOPCARD操作キー [key1 key2 ... keyN]

時間の複雑さ

O(C * M)

コマンド説明

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

説明

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

パラメーター

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

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

    • DIFF演算は、2つのキー間の差のみを計算する。 差を計算するための操作の順序に注意してください。 例えば、TR.BITOP結果DIFF key1 key2コマンドは、key1値からkey2値を減算する。

  • key: このコマンドを実行して管理するキー。 複数のキーを指定できます。

Output

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

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

例:

サンプルコマンド:

TR。BITOPCARD NOT foo

サンプル出力:

(integer) 2

TR. 最適化

項目

説明

構文

TR.OPTIMIZEキー

時間の複雑さ

O(M)

コマンド説明

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

パラメーター

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

Output

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

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

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

例:

サンプルコマンド:

TR.OPTIMIZE foo

サンプル出力:

OK

TR.GETBIT

項目

説明

構文

TR.GETBITキーオフセット

時間の複雑さ

O(1)

コマンド説明

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

パラメーター

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

  • offset: 値を取得するビットのオフセット。

Output

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

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

例:

サンプルコマンド:

TR.GETBIT foo 0

サンプル出力:

(integer) 1

TR.GETBITS

項目

説明

構文

TR.GETBITSキーオフセット [offset1 offset2 ... offsetN]

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

  • offset: 値を取得するビットのオフセット。

Output

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

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

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

例:

サンプルコマンド:

TR.GETBITS foo 3 4 6 8

サンプル出力:

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

TR. ビットカウント

項目

説明

構文

TR.BITCOUNTキー [開始終了]

時間の複雑さ

O(M)

コマンド説明

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

パラメーター

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

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

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

Output

  • 操作が成功した場合、キー内の指定された範囲内で1の値を持つ整数のビットが返されます。

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

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

例:

サンプルコマンド:

TR.BITCOUNT foo 4 9

サンプル出力:

(integer) 3

TR.BITPOS

項目

説明

構文

TR.BITPOS <キー> <値> [カウント]

時間の複雑さ

O(C)

コマンド説明

カウントの序数を持つビットのオフセットを取得します。 ビットは、1または0の値を有することができる。 countパラメーターはオプションで、デフォルト値は1です。 1の値は、左 − 右計数アプローチを使用することによって検索された最初のビットを示す。

パラメーター

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

  • value: オフセットを取得するビットの値。 ビット値は0または1とすることができる。

  • count: ビットの序数。 負の数は、左右計数アプローチが使用されることを示す。

Output

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

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

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

例:

サンプルコマンド:

TR.BITPOS foo 1 -1

サンプル出力:

(integer) 6

TR. スキャン

項目

説明

構文

TR.SCANキーstart_offset [カウント数]

時間の複雑さ

O(C)

コマンド説明

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

説明

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

パラメーター

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

  • start_offset: ビットのオフセット。 このオフセットに一致するビットが走査される。

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

Output

  • 操作が成功すると、2つの要素を含む配列が返されます。

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

    • 2番目の要素は、指定する次のオフセットです。

    説明

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

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

例:

サンプルコマンド:

TR.SCAN foo 0 COUNT 2

サンプル出力:

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

TR. レンジ

項目

説明

構文

TR.RANGEキー開始終了

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

  • start: 間隔の開始値。

  • end: 間隔の終了値。

Output

  • 操作が成功した場合、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キースタートエンド

時間の複雑さ

O(C)

コマンド説明

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

パラメーター

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

  • start: 間隔の開始値。

  • end: 間隔の終了値。

Output

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

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

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

例:

TR.SETBITS foo 0 2 3 5コマンドは予め実行される。

サンプルコマンド:

TR.RANGEBITARRAY foo 0 5

サンプル出力:

「101101」

TR.MIN

項目

説明

構文

TR.MINキー

時間の複雑さ

O(1)

コマンド説明

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

パラメーター

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

Output

  • 操作が成功した場合、戻り値は、値が1のビットが存在するかどうか、またはキーが存在するかどうかによって異なります。

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

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

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

例:

サンプルコマンド:

TR.MIN foo

サンプル出力:

4

TR.MAX

項目

説明

構文

TR.MAXキー

時間の複雑さ

O(1)

コマンド説明

TairRoaringキーで1の値を持つ最後のビットのオフセットを取得します。 1の値を有するビットがない場合、− 1が返される。

パラメーター

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

Output

  • 操作が成功した場合、戻り値は、値が1のビットが存在するかどうか、またはキーが存在するかどうかによって異なります。

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

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

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

例:

サンプルコマンド:

TR.MAX foo

サンプル出力:

6

TR.STAT

項目

説明

構文

TR.STATキー [JSON]

時間の複雑さ

O(M)

コマンド説明

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

パラメーター

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

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

Output

  • 操作が成功すると、次の出力が返されます。

    "{\"cardinality\":3, # Total number of elements in the key
    "number_of_containers":1, # Total number of containers in the key
    "max_value":6, # Maximum element value in the key
    \"min_value\":3, # Minimum element value in the key
    \"sum_value\":13,
    \"array_container\" :{# Number of array containers in the key
        \"number_of_containers\":1,
        \"container_cardinality\":3,
        \"container_allocated_bytes\":6},
    \"bitset_container\" :{# Number of bitset containers in the key
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0},
    \"run_container\" :{# Number of run containers in the key
        \"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. ジャカード

項目

説明

構文

TR. ジャックカードkey1 key2

時間の複雑さ

O(M)

コマンド説明

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

説明

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

パラメーター

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

Output

  • 操作が成功した場合、二重タイプのJaccard類似度係数が返されます。

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

例:

サンプルコマンド:

TR.JACCARD foo1 foo2

サンプル出力:

「0.20000000000000001」

TR. 含有量

項目

説明

構文

TR.CONTAINS key1 key2

時間の複雑さ

O(M)

コマンド説明

key2にkey1が含まれているかどうかをチェックします。 yesの場合、key1はkey2のサブセットであり、値1が返されます。 そうでなければ、key1はkey2のサブセットではなく、0の値が返される。

説明

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

パラメーター

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

Output

  • 操作が成功した場合、戻り値はkey2にkey1が含まれているかどうかによって異なります。

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

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

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

例:

TR.SETBITS fooM1 2 3およびTR.SETBITS fooM 1 2コマンドは、事前に実行される。

サンプルコマンド:

TR。foom fooM

が含まれています

サンプル出力:

(integer) 1

TR. ランク

項目

説明

構文

TR.RANKキーオフセット

時間の複雑さ

O(M)

コマンド説明

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

パラメーター

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

  • offset: 指定されたビットのオフセット。 値は整数でなければなりません。

Output

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

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

例:

TR.SETBITS fooM1 2 3 10コマンドは、事前に実行される。

サンプルコマンド:

TR.RANK fooM 10

サンプル出力:

(integer) 4

エラーメッセージ

エラーメッセージ

説明

間違った種類の値を保持しているキーに対するWRONGTYPE操作

不正なキータイプ: キーはTairRoaringキーではありません。

ERRの悪い引数、符号なし32ビット整数である必要があります

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

ERR無効な引数、おそらく範囲外または違法

無効なパラメーター:

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

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

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

ERRキーは既に存在します

TairRoaringキーは既に存在し、そのデータは上書きできません。

説明

このエラーはTairRoaring V2.2で修正されています。

ERRキーが見つかりません

TairRoaringキーは存在しません。

説明

このエラーはTairRoaring V2.2で修正されています。