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

Tair (Redis® OSS-Compatible):exZset

最終更新日:Feb 26, 2026

TairZset (exZset) は、256 個の double 型スコアによるソートをサポートします。ゲーム、ライブストリーミング、音楽、E コマースなどの業界におけるランキングシナリオに適しています。データ処理効率を大幅に向上させ、クライアントの適応も簡単で、エンコーディングやデコーディングのカプセル化は不要です。

TairZset の概要

ネイティブの Redis ソート済みセット (Zset とも呼ばれる) は、1 つの double 型スコアによるソートしかサポートしていないため、多次元ソートが困難です。たとえば、IEEE 754 と文字列連結を組み合わせて多次元ソートを実装するには、実装が複雑で、精度が低下し、EXZINCRBY コマンドが使用できないなどの制限があります。

Alibaba Cloud が独自に開発した TairZset データ構造は、多次元ソートを提供します。従来のソリューションに比べて、以下の利点があります。

  • 最大 256 個の double 型スコアによるソートをサポートし、ソートの優先順位は左から右です。

    多次元スコアの場合、最も左のスコアが最も高い優先順位を持ちます。たとえば、score1#score2#score3 のような 3 次元のスコアを考えます。TairZset がスコアを比較する際、まず score1 を比較します。score1 の値が等しい場合は、次に score2 を比較します。そうでない場合、score1 の比較結果が全体のスコアを決定します。同様に、score2 の値も等しい場合にのみ score3 を比較します。すべての次元のスコアが同じ場合は、要素の順序 (ASCII 順) でソートされます。

    これをよりよく理解するために、「#」を小数点 (.) と考えてみてください。たとえば、0#99、99#90、99#99 の関係は 0.99 < 99.90 < 99.99 となり、つまり 0#99 < 99#90 < 99#99 となります。

  • EXZINCRBY コマンドをサポートします。これにより、現在のデータを取得し、ローカルで値を増分させ、連結して Tair に書き戻す必要がなくなります。

  • ネイティブの Zset と同様の API をサポートします。

  • 通常のリーダーボード分散リーダーボードをサポートします。

  • オープンソースの TairJedis クライアントを提供します。このクライアントは、エンコーディングやデコーディングのカプセル化を必要としません。また、オープンソースのコードを参照して、他の言語用のカプセル化を実装することもできます。

典型的なシナリオ

ゲーム、ライブストリーミング、音楽、E コマースなどの業界におけるランキングシナリオに適しています。例は次のとおりです。

  • ライブストリーミングのランキングリスト:ライブストリーミングの PK では、ストリーマーはまず現在の人気度でランク付けされます。人気度が同じ場合は、「いいね!」の数でランク付けされます。「いいね!」の数も同じ場合は、ギフト額などでランク付けされます。

  • メダルランキングリスト:参加者は金、銀、銅メダルでランク付けされます。まず、金メダルの数でソートされます。金メダルの数が同じ場合は、銀メダルの数でソートされます。銀メダルの数も同じ場合は、銅メダルの数でソートされます。

  • ゲームランキングリスト:プレイヤーはスコア、タスク完了時間、ランクなど、複数の次元でランク付けされます。

このモジュールはオープンソースです。詳細については、「TairZset」をご参照ください。

ベストプラクティス

前提条件

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

説明

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

注意事項

操作は Tair インスタンス内の TairZset データに適用されます。

コマンド

コマンド

構文

説明

EXZADD

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

指定されたスコアとメンバー情報を TairZset キーに格納します。複数のスコアとメンバーをサポートします。

説明

多次元ソートを実装するには、各次元のスコアをハッシュ記号 (#) で区切ります (例:111#222#121)。キー内のすべてのメンバーは、同じスコアフォーマットでなければなりません。

EXZINCRBY

EXZINCRBY key increment member

TairZset キー内のメンバーのスコアを増分させます。increment はスコアに加算する値です。

EXZSCORE

EXZSCORE key member

TairZset キー内のメンバーのスコアを返します。キーまたはメンバーが存在しない場合、システムは nil を返します。

EXZRANGE

EXZRANGE key min max [WITHSCORES]

TairZset キー内の指定された範囲の要素を返します。

EXZREVRANGE

EXZREVRANGE key min max [WITHSCORES]

TairZset キー内の指定された範囲の要素を返します。要素はスコアの高い順にソートされます。同じスコアの要素は、逆辞書式順序でソートされます。

説明

逆順ソートを除き、このコマンドは EXZRANGE と同様です。

EXZRANGEBYSCORE

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

TairZset キー内で、スコアが min 以上かつ max 以下のすべての要素を返します。要素はスコアの低い順にソートされます。同じスコアの要素は、辞書式順序でソートされます。

EXZREVRANGEBYSCORE

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

TairZset キー内で、スコアが min 以上かつ max 以下のすべての要素を返します。デフォルトの TairZset ソートとは異なり、このコマンドは要素をスコアの高い順にソートします。同じスコアの要素は、逆辞書式順序でソートされます。

説明

逆順ソートを除き、このコマンドは EXZRANGEBYSCORE と同様です。このコマンドでは、max が min の前に来ることに注意してください。

EXZRANGEBYLEX

EXZRANGEBYLEX key min max [LIMIT offset count]

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で minmax の間にある要素を返します。

EXZREVRANGEBYLEX

EXZREVRANGEBYLEX key max min [LIMIT offset count]

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で max と min の間にある要素を返します。

説明

逆順ソートを除き、このコマンドは EXZRANGEBYLEX と同様です。このコマンドでは、max が min の前に来ることに注意してください。

EXZREM

EXZREM key member [member ...]

キーから指定されたメンバーを削除します。指定されたメンバーが存在しない場合は無視します。

EXZREMRANGEBYSCORE

EXZREMRANGEBYSCORE key min max

TairZset キーから、スコアが min 以上かつ max 以下の要素を削除します。

EXZREMRANGEBYRANK

EXZREMRANGEBYRANK key start stop

TairZset キーから、ランクが startstop の間にある要素を削除します。

EXZREMRANGEBYLEX

EXZREMRANGEBYLEX key min max

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で max と min の間にある要素を削除します。

説明

このコマンドと EXZRANGEBYLEX コマンドで同じ minmax のパラメーター値を使用した場合、このコマンドは EXZRANGEBYLEX が返すのと同じ要素を削除します。

EXZCARD

EXZCARD key

TairZset キーのカーディナリティ (要素数) を返します。

EXZRANK

EXZRANK key member

TairZset キー内のメンバーのランクを、スコアの低い順にソートして返します。ランク (またはインデックス) は 0 から始まり、最もスコアの低いメンバーのランクが 0 になります。

EXZREVRANK

EXZREVRANK key member

TairZset キー内のメンバーのランクを返します。結果はスコアの高い順にソートされます。ランク (またはインデックス) は 0 から始まり、最もスコアの高いメンバーのランクが 0 になります。

説明

逆順ソートのルールを除き、このコマンドは EXZRANK と同様です。

EXZCOUNT

EXZCOUNT key min max

TairZset キー内で、スコアが minmax の間にある要素の数を返します。

EXZLEXCOUNT

EXZLEXCOUNT key min max

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で値が min と max の間にある要素の数を返します。

EXZRANKBYSCORE

EXZRANKBYSCORE key score

TairZset キー内で指定されたスコアの順位を、スコアの昇順で計算します。順位(またはインデックス)は 0 から始まり、最も低いスコアを持つメンバーの順位は 0 になります。

説明

指定されたスコアが存在しない場合、TairZset キー内での推定順位を返します。指定されたスコアがすでに存在する場合、Tair はデフォルトでそのスコアを既存のスコアの前に配置します。

EXZREVRANKBYSCORE

EXZREVRANKBYSCORE key score

TairZset キー内の指定スコアの順位を算出します。スコアは高い方から低い方に向かってソートされ、順位(またはインデックス)は 0 から始まります。最も高いスコアを持つメンバーの順位は 0 です。

説明

指定されたスコアが存在しない場合、TairZset キー内でのそのスコアの推定順位を返します。指定されたスコアがすでに存在する場合、Tair ではデフォルトで既存のスコアの後に配置されます。

DEL

DEL key [key ...]

ネイティブの Redis DEL コマンドを使用して、1 つ以上の TairZset データエントリを削除します。

説明

このトピックで使用されるコマンド構文の規則は次のとおりです。

  • Uppercase keyword:コマンドのキーワードを示します。

  • Italic text:変数を示します。

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

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

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

EXZADD

カテゴリ

説明

構文

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

時間計算量

O(N)

コマンドの説明

指定されたスコアとメンバー情報を TairZset キーに格納します。複数のスコアとメンバーをサポートします。システムは、キーとメンバーが存在するかどうかに基づいて、異なる戦略を適用します。

  • 指定されたキーまたはメンバーが存在しない場合、システムはそれを作成し、スコアを挿入します。

  • 指定されたキーまたはメンバーが既に存在する場合、システムはスコアを更新 (上書き) します。

  • 各スコアは、倍精度浮動小数点数の文字列表現です。+inf と -inf は有効な値です。

説明

多次元ソートを実装するには、各次元のスコアをハッシュ記号 (#) で区切ります (例:111#222#121)。キー内のすべてのメンバーは、同じスコアフォーマットでなければなりません。

オプション

  • NX:新しい要素のみを追加します。既存の要素は更新しません。

  • XX:既存の要素のみを更新します。新しい要素は追加しません。

  • CH:通常、このコマンドは追加された新しい要素の数を返します。このパラメーターを使用すると、戻り値が変更された要素の総数に変わります。

    説明

    変更された要素には、新しい要素とスコアが更新された既存の要素が含まれます。したがって、コマンドラインで既存の要素のスコアが変更されない場合、それは変更された要素としてカウントされません。

  • INCR:このオプションを指定すると、EXZADD は EXZINCRBY のように動作します。このモードでは、1 つのスコアと 1 つの要素のみを指定できます。

戻り値

整数を返します。

  • オプションが指定されていない場合、戻り値はキーに追加された要素の数です (スコアのみが更新された要素は除く)。

  • CH オプションが指定されている場合、戻り値は変更された要素 (新規または更新) の数です。

  • INCR オプションが指定されている場合、戻り値はメンバーの新しいスコア (文字列として) です。多次元スコアが使用されている場合、メンバーのスコアフォーマットは "score1#score2#score3#..." となります (例:2#0#6)。

    説明

    操作が停止した場合 (コマンドに XX または NX オプションが含まれる場合)、nil を返します。

コマンド例:

EXZADD testkey NX 1#0#3 a 1#0#2 b

戻り値の例:

(integer) 2

EXZINCRBY

カテゴリ

説明

構文

EXZINCRBY key increment member

時間計算量

O(log(N))

コマンドの説明

TairZset キー内のメンバーのスコアを増分させます。increment はスコアに加算する値です。システムは、キーとメンバーが存在するかどうかに基づいて、異なる戦略を適用します。

  • 指定されたキーまたはメンバーが存在しない場合、システムはそれを作成し、スコアを挿入します。

  • 指定されたキーまたはメンバーが既に存在する場合、システムはスコアを更新 (増分) します。

  • 各スコアは、倍精度浮動小数点数の文字列表現です。+inf と -inf は有効な値です。

説明
  • 多次元ソートを実装するには、各次元のスコアをハッシュ記号 (#) で区切ります (例:111#222#121)。キー内のすべてのメンバーは、同じスコアフォーマットでなければなりません。

  • スコアは数値の文字列表現でなければならず、倍精度浮動小数点数にすることができます。メンバーのスコアを減らすには、負の数を指定します。

オプション

なし

戻り値

メンバーの新しいスコア (文字列として) を返します。多次元スコアが使用されている場合、メンバーのスコアフォーマットは "score1#score2#score3#..." となります (例:2#0#6)。

コマンド例:

EXZINCRBY testkey 2#2#1 a

戻り値の例:

"3#2#4"

EXZSCORE

カテゴリ

説明

構文

EXZSCORE key member

時間計算量

O(1)

コマンドの説明

TairZset キー内のメンバーのスコアを返します。キーまたはメンバーが存在しない場合、システムは nil を返します。

オプション

なし

戻り値

メンバーのスコア (文字列として) を返します。多次元スコアが使用されている場合、メンバーのスコアフォーマットは "score1#score2#score3#..." となります (例:2#0#6)。

コマンド例:

EXZSCORE testkey a

戻り値の例:

"3#2#4"

EXZRANGE

カテゴリ

説明

構文

EXZRANGE key min max [WITHSCORES]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

コマンドの説明

TairZset キー内の指定された範囲の要素を返します。

オプション

  • minmax:これらは 0 から始まるインデックス値を表します。最初の要素のインデックス値は 0、2 番目の要素は 1、というようになります。これら 2 つのパラメーターを使用して閉区間を指定します。

    説明
    • インデックス値が負の場合、返される要素の末尾からのオフセットを表します。たとえば、-1 はキーの最後の要素、-2 は最後から 2 番目の要素を表します。

    • すべての要素情報をクエリするには、min を 0 に、max を -1 に設定します。

    • min の値がキーの最後の要素のインデックス値または max の値より大きい場合、空のリストが返されます。

  • WITHSCORES:戻り値には要素のスコアが含まれます。返されるリストのデータ形式は value1, score1, ..., valueN, scoreN です。例:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

戻り値

指定された範囲内の要素のリストを返します。WITHSCORES オプションが使用されている場合、戻り値には要素のスコアが含まれます。

コマンド例:

EXZRANGE testkey 0 -1 WITHSCORES

戻り値の例:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGE

カテゴリ

説明

構文

EXZREVRANGE key min max [WITHSCORES]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

コマンドの説明

TairZset キー内の指定された範囲の要素を返します。要素はスコアの高い順にソートされます。同じスコアの要素は、逆辞書式順序でソートされます。

説明

逆順ソートを除き、このコマンドは EXZRANGE と同様です。

オプション

  • minmax:これらは 0 から始まるインデックス値を表します。最初の要素のインデックス値は 0、2 番目の要素は 1、というようになります。これら 2 つのパラメーターを使用して閉区間を指定します。

    説明
    • インデックス値が負の場合、返される要素の末尾からのオフセットを表します。たとえば、-1 はキーの最後の要素、-2 は最後から 2 番目の要素を表します。

    • すべての要素情報をクエリするには、min を 0 に、max を -1 に設定します。

    • min の値がキーの最後の要素のインデックス値または max の値より大きい場合、空のリストが返されます。

  • WITHSCORES:戻り値には要素のスコアが含まれます。返されるリストのデータ形式は value1, score1, ..., valueN, scoreN です。例:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

戻り値

指定された範囲内の要素のリストを返します。WITHSCORES オプションが使用されている場合、戻り値には要素のスコアが含まれます。

コマンド例:

EXZREVRANGE testkey 0 -1 WITHSCORES

戻り値の例:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYSCORE

カテゴリ

説明

構文

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

説明

M が定数である場合 (たとえば、LIMIT オプションを使用して常に最初の 10 要素を返す場合)、この数式は O(log(N)) と見なすことができます。

コマンドの説明

TairZset キー内で、スコアが min 以上かつ max 以下のすべての要素を返します。要素はスコアの低い順にソートされます。同じスコアの要素は、辞書式順序でソートされます。

オプション

  • minmax:それぞれ最小スコアと最大スコアを表します。キー内の要素が多次元スコアを使用する場合、各次元のスコアをハッシュ記号 (#) で区切ります。

    説明
    • キー内の要素の最高スコアと最低スコアが不明で、特定の値以上のスコアまたは以下のスコアを持つ要素をクエリしたい場合は、min を負の無限大 (-inf) に、max を正の無限大 (+inf) に設定します。

    • デフォルトのデータ範囲は閉区間です。開区間を指定するには、スコア範囲の前に半角の丸括弧を追加します。たとえば、(1 5 は、スコアが 1 より大きく 5 以下の要素を返すことを意味します。

  • WITHSCORES:戻り値には要素のスコアが含まれます。

  • LIMIT offset count:返される結果の数と範囲を指定します。count が負の数の場合、オフセットからすべての要素を返します。

    説明

    offset が大きい場合、要素を返す前にオフセット要素を見つけるためにキー全体を走査します。これにより時間計算量が増加します。

戻り値

指定されたスコア範囲内の要素のリストを返します。WITHSCORES オプションが使用されている場合、戻り値には要素のスコアが含まれます。

コマンド例

コマンド例:

EXZRANGEBYSCORE testkey 0#0#0 6#6#6 WITHSCORES

戻り値の例:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGEBYSCORE

カテゴリ

説明

構文

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

説明

M が定数である場合 (たとえば、LIMIT オプションを使用して常に最初の 10 要素を返す場合)、この数式は O(log(N)) と見なすことができます。

コマンドの説明

TairZset キー内で、スコアが min 以上かつ max 以下のすべての要素を返します。デフォルトの TairZset ソートとは異なり、このコマンドは要素をスコアの高い順にソートします。同じスコアの要素は、逆辞書式順序でソートされます。

説明

このコマンドは EXZRANGEBYSCORE と同様に機能しますが、ソート順が逆です。このコマンドでは、max が先に指定されます。

オプション

  • minmax:それぞれ最小スコアと最大スコアを表します。キー内の要素が多次元スコアを使用する場合、各次元のスコアをハッシュ記号 (#) で区切ります。

    説明
    • キー内の要素の最高スコアと最低スコアが不明で、特定の値以上のスコアまたは以下のスコアを持つ要素をクエリしたい場合は、min を負の無限大 (-inf) に、max を正の無限大 (+inf) に設定します。

    • デフォルトのデータ範囲は閉区間です。開区間を指定するには、スコア範囲の前に半角の丸括弧を追加します。たとえば、(1 5 は、スコアが 1 より大きく 5 以下の要素を返すことを意味します。

  • WITHSCORES:戻り値には要素のスコアが含まれます。

  • LIMIT offset count:返される結果の数と範囲を指定します。count が負の数の場合、オフセットからすべての要素を返します。

    説明

    offset が大きい場合、要素を返す前にオフセット要素を見つけるためにキー全体を走査します。これにより時間計算量が増加します。

戻り値

指定されたスコア範囲内の要素のリストを返します。WITHSCORES オプションが使用されている場合、戻り値には要素のスコアが含まれます。

コマンド例

コマンド例:

EXZREVRANGEBYSCORE testkey 6#6#6 0#0#0 WITHSCORES

戻り値の例:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYLEX

カテゴリ

説明

構文

EXZRANGEBYLEX key min max [LIMIT offset count]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

説明

M が定数である場合 (たとえば、LIMIT オプションを使用して最初の 10 要素を返す場合)、この数式は O(log(N)) と見なすことができます。

コマンドの説明

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で minmax の間にある要素を返します。

説明
  • キー内の要素のスコアが異なる場合、返される要素は不明です。

  • C 関数の memcmp() は、2 つの要素文字列のバイトを 1 つずつ比較します。要素は比較結果に基づいて低い順にソートされます。2 つの文字列が同じ部分文字列を含む場合、長い文字列の方が高いスコアを持ちます。

オプション

  • minmax:それぞれ最小メンバー名と最大メンバー名 (文字列として) を表します。文字範囲を指定します。例:

    • 開区間:値の前に半角の丸括弧を追加します (例:(a)。

    • 閉区間:値の前に角括弧を追加します (例:[a)。

    説明

    正の無限大と負の無限大は、それぞれ +- です。

  • LIMIT offset count:返される結果の数と範囲を指定します。count が負の数の場合、オフセットからすべての要素を返します。

    説明

    offset が大きい場合、要素を返す前にオフセット要素を見つけるためにキー全体を走査します。これにより時間計算量が増加します。

戻り値

名前が指定された範囲内にある要素のリストを返します。

コマンド例

コマンド例:

EXZRANGEBYLEX zzz [a [b

戻り値の例:

1) "aba"
2) "abc"

EXZREVRANGEBYLEX

カテゴリ

説明

構文

EXZREVRANGEBYLEX key max min [LIMIT offset count]

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は返される要素数です。

説明

M が定数である場合 (たとえば、LIMIT オプションを使用して常に最初の 10 要素を返す場合)、この数式は O(log(N)) と見なすことができます。

コマンドの説明

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で max と min の間にある要素を返します。

説明

このコマンドは EXZRANGEBYLEX の逆です。このコマンドでは、max パラメーターが先に指定されることに注意してください。

オプション

  • minmax:それぞれ最小メンバー名と最大メンバー名 (文字列として) を表します。文字範囲を指定します。例:

    • 開区間:値の前に半角の丸括弧を追加します (例:(a)。

    • 閉区間:値の前に角括弧を追加します (例:[a)。

    説明

    正の無限大と負の無限大は、それぞれ +- です。

  • LIMIT offset count:返される結果の数と範囲を指定します。count が負の数の場合、オフセットからすべての要素を返します。

    説明

    offset が大きい場合、要素を返す前にオフセット要素を見つけるためにキー全体を走査します。これにより時間計算量が増加します。

戻り値

名前が指定された範囲内にある要素のリストを返します。

コマンド例

コマンド例:

EXZREVRANGEBYLEX zzz [b [a

戻り値の例:

1) "abc"
2) "aba"

EXZREM

カテゴリ

説明

構文

EXZREM key member [member ...]

時間計算量

O(M*log(N))。ここで、N は TairZset 内の要素数、M は削除する要素数です。

コマンドの説明

キーから指定されたメンバーを削除します。指定されたメンバーが存在しない場合は無視します。

説明

指定されたキーが存在するが、そのデータ構造が TairZset でない場合、システムはエラーを返します。

オプション

なし

戻り値

キーから削除されたメンバーの数を返します (存在しないメンバーは除く)。

コマンド例

コマンド例:

EXZREM testkey a

戻り値の例:

(integer) 1

EXZREMRANGEBYSCORE

カテゴリ

説明

構文

EXZREMRANGEBYSCORE key min max

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M は削除する要素数です。

コマンドの説明

TairZset キーから、スコアが min 以上かつ max 以下の要素を削除します。

オプション

minmax は、それぞれ最小スコアと最大スコアを表します。キー内の要素が多次元スコアを使用する場合、各次元のスコアをハッシュ記号 (#) で区切ります。

説明
  • キー内の要素の最高スコアと最低スコアが不明で、特定の値以上のスコアまたは以下のスコアを持つ要素を削除したい場合は、min を負の無限大 (-inf) に、max を正の無限大 (+inf) に設定します。

  • デフォルトのデータ範囲は閉区間です。開区間を指定するには、スコア範囲の前に半角の丸括弧を追加します。たとえば、EXZREMRANGEBYSCORE (1 5 は、スコアが 1 より大きく 5 以下の要素を削除することを意味します。

戻り値

削除された要素の数を返します。

コマンド例

コマンド例:

EXZREMRANGEBYSCORE testkey 3#2#4 6#6#6

戻り値の例:

(integer) 1

EXZREMRANGEBYRANK

カテゴリ

説明

構文

EXZREMRANGEBYRANK key start stop

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M はこの操作によって削除された要素数です。

コマンドの説明

TairZset キーから、ランクが startstop の間にある要素を削除します。

オプション

startstop は 0 から始まるインデックス値で、0 は最もスコアの低い要素を表します。負のインデックス値は、最もスコアの高い要素からのオフセットを表します。たとえば、-1 は最もスコアの高い要素、-2 は 2 番目に高いスコアの要素、というようになります。

戻り値

削除された要素の数を返します。

コマンド例

コマンド例:

EXZREMRANGEBYRANK testkey 0 1EXZREVRANGEBYSCORE

戻り値の例:

(integer) 1

EXZREMRANGEBYLEX

カテゴリ

説明

構文

EXZREMRANGEBYLEX key min max

時間計算量

O(log(N)+M)。ここで、N は TairZset 内の要素数、M はこの操作によって削除された要素数です。

コマンドの説明

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で max と min の間にある要素を削除します。

説明

このコマンドと EXZRANGEBYLEX コマンドで同じ minmax のパラメーター値を使用した場合、このコマンドは EXZRANGEBYLEX が返すのと同じ要素を削除します。

オプション

minmax:それぞれ最小メンバー名と最大メンバー名 (文字列として) を表します。文字範囲を指定します。例:

  • 開区間:値の前に半角の丸括弧を追加します (例:(a)。

  • 閉区間:値の前に角括弧を追加します (例:[a)。

戻り値

削除された要素の数。

コマンド例

コマンド例:

EXZREMRANGEBYLEX [a [b

戻り値の例:

(integer) 2

EXZCARD

カテゴリ

説明

構文

EXZCARD key

時間計算量

O(1)

コマンドの説明

TairZset キーのカーディナリティ (要素数) を返します。

オプション

なし

戻り値

キー内の要素の数を返します。キーが存在しない場合は 0 を返します。

コマンド例

コマンド例:

EXZCARD testkey

戻り値の例:

(integer) 2

EXZRANK

カテゴリ

説明

構文

EXZRANK key member

時間計算量

O(log(N))

コマンドの説明

TairZset キー内のメンバーのランクを、スコアの低い順にソートして返します。ランク (またはインデックス) は 0 から始まり、最もスコアの低いメンバーのランクが 0 になります。

オプション

なし

戻り値

  • 指定されたメンバーがキーに存在する場合、メンバーのランク (整数) を返します。

  • キーまたはメンバーが見つからない場合、nil が返されます。

コマンド例

コマンド例:

EXZRANK testkey b

戻り値の例:

(integer) 0

EXZREVRANK

カテゴリ

説明

構文

EXZREVRANK key member

時間計算量

O(log(N))

コマンドの説明

TairZset キー内のメンバーのランクを返します。結果はスコアの高い順にソートされます。ランク (またはインデックス) は 0 から始まり、最もスコアの高いメンバーのランクが 0 になります。

説明

逆順ソートのルールを除き、このコマンドは EXZRANK と同様です。

オプション

なし

戻り値

  • 指定されたメンバーがキーに存在する場合、メンバーのランク (整数) を返します。

  • キーまたはメンバーが見つからない場合、nil が返されます。

コマンド例

コマンド例:

EXZREVRANK testkey b

戻り値の例:

(integer) 1

EXZCOUNT

カテゴリ

説明

構文

EXZCOUNT key min max

時間計算量

O(log(N))。ここで、N は TairZset 内の要素数です。

説明

この操作は要素レベルでクエリ範囲を取得するため、関連する作業量はクエリ範囲のサイズに比例しません。

コマンドの説明

TairZset キー内で、スコアが minmax の間にある要素の数を返します。

オプション

minmax:それぞれ最小スコアと最大スコアを表します。キー内の要素が多次元スコアを使用する場合、各次元のスコアをハッシュ記号 (#) で区切ります。

説明
  • キー内の要素の最高スコアと最低スコアが不明で、特定の値以上のスコアまたは以下のスコアを持つ要素をクエリしたい場合は、min を負の無限大に、max を正の無限大に設定します。

  • デフォルトのデータ範囲は閉区間です。開区間を指定するには、スコア範囲の前に半角の丸括弧を追加します。たとえば、(1 5 は、スコアが 1 より大きく 5 以下の要素を返すことを意味します。

戻り値

指定されたスコア範囲内の要素の数 (整数) を返します。

コマンド例

コマンド例:

EXZCOUNT testkey (1#0#2 6#6#6

戻り値の例:

(integer) 1

EXZLEXCOUNT

カテゴリ

説明

構文

EXZLEXCOUNT key min max

時間計算量

O(log(N))。ここで、N は TairZset 内の要素数です。

説明

この操作は要素レベルでクエリ範囲を取得するため、関連する作業量はクエリ範囲のサイズに比例しません。

コマンドの説明

辞書式順序を保証するため、キー内のすべての要素が同じスコアを持つ場合、このコマンドはキー内で値が min と max の間にある要素の数を返します。

説明
  • キー内の要素のスコアが異なる場合、返される要素は不明です。

  • C 関数の memcmp() は、2 つの要素文字列のバイトを 1 つずつ比較します。要素は比較結果に基づいて低い順にソートされます。2 つの文字列が同じ部分文字列を含む場合、長い文字列の方が高いスコアを持ちます。

オプション

minmax:それぞれ最小メンバー名と最大メンバー名 (文字列として) を表します。文字範囲を指定します。例:

  • 開区間:値の前に半角の丸括弧を追加します (例:(a)。

  • 閉区間:値の前に角括弧を追加します (例:[a)。

戻り値

指定されたスコア範囲内の要素の数 (整数) を返します。

コマンド例

コマンド例:

EXZLEXCOUNT zzz [a [b

戻り値の例:

(integer) 2

EXZRANKBYSCORE

カテゴリ

説明

構文

EXZRANKBYSCORE key score

時間計算量

O(log(N))

コマンドの説明

TairZset キー内の指定されたスコアのランクを、スコアの低い順にソートして計算します。ランク (またはインデックス) は 0 から始まり、最もスコアの低いメンバーのランクが 0 になります。

説明

指定されたスコアが存在しない場合、TairZset キー内での推定ランクを返します。指定されたスコアが既に存在する場合、Tair はデフォルトで既存のスコアの前に配置します。

オプション

なし

戻り値

キー内の指定されたスコアのランクを返します。

コマンド例

コマンド例:

EXZRANKBYSCORE testkey 2#0#2 

戻り値の例:

(integer) 1

EXZREVRANKBYSCORE

カテゴリ

説明

構文

EXZREVRANKBYSCORE key score

時間計算量

O(log(N))

コマンドの説明

TairZset キー内の指定されたスコアのランクを、スコアの高い順にソートして計算します。ランク (またはインデックス) は 0 から始まり、最もスコアの高いメンバーのランクが 0 になります。

説明

指定されたスコアが存在しない場合、TairZset キー内での推定ランクを返します。指定されたスコアが既に存在する場合、Tair はデフォルトで既存のスコアの後に配置します。

オプション

なし

戻り値

キー内の指定されたスコアのランクを返します。

コマンド例

コマンド例:

EXZREVRANKBYSCORE testkey 2#0#2 

戻り値の例:

(integer) 1