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

Tair (Redis® OSS-Compatible):exHash

最終更新日:Dec 06, 2024

TairHash (exHashとも呼ばれます) は、フィールドの有効期限とバージョン番号を指定できる拡張ハッシュデータ構造です。 TairHashは柔軟性があり、ほとんどのシナリオでビジネス開発を簡素化できます。

概要

TairHashとRedis Hashは、さまざまなデータインターフェイスをサポートし、データ処理で高いパフォーマンスを提供します。 ただし、Redis Hashでは、キーの有効期限のみを指定できます。 TairHashでは、キーとフィールドの両方に有効期限を指定できます。 TairHashを使用して、フィールドのバージョン番号を指定することもできます。 TairHashは柔軟性があり、ほとんどのシナリオでビジネス開発を簡素化できます。 TairHashは、効率的なアクティブ有効期限アルゴリズムを使用して、フィールドの有効期限を確認し、期限切れフィールドを削除します。 このプロセスでは、データベースの応答時間は増加しません。

主な特徴

  • TairHashでは、フィールドの有効期限とバージョン番号を指定できます。

  • TairHashは、フィールドの効率的で柔軟な有効期限ポリシーをサポートします。 有効期限ポリシーは、アクティブまたはパッシブにすることができます。

  • TairHashは、Redis Hashと同様の構文を提供します。

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

前提条件

インスタンスは、次のいずれかのTairシリーズタイプです。

説明

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

注意事項

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

サポートされるコマンド

表 1. TairHashコマンド

コマンド

構文

説明

排出量

EXHSETキーフィールド値 [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABSバージョン] [KEEPTL]

TairHashキーにフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 フィールドがすでに存在する場合、このコマンドはフィールドの現在の値を上書きします。

排出量

EXHGETキーフィールド

TairHashキーからフィールドの値を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。

EXHMSET

EXHMSETキーフィールド値 [フィールド値...]

TairHashキーに複数のフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 これらのフィールドがすでにキーに存在する場合、このコマンドはこれらのフィールドの値を上書きします。

EXHPEXPIREAT

EXHPEXPIREATキーフィールドミリ秒-timestamp [VER | ABSバージョン]

TairHashキーのフィールドの絶対有効期限を指定します。 単位:ミリ秒。

EXHPEXPIRE

EXHPEXPIREキーフィールドミリ秒 [VER | ABSバージョン]

TairHashキーのフィールドの相対有効期限を指定します。 単位:ミリ秒。

EXHEXPIREAT

EXHEXPIREATキーフィールドtimestamp [VER | ABSバージョン]

TairHashキーのフィールドの絶対有効期限を指定します。 単位は秒です。

EXHEXPIRE

EXHEXPIREキーフィールド秒 [VER | ABSバージョン]

TairHashキーのフィールドの相対有効期限を指定します。 単位は秒です。

EXHPTTL

EXHPTTLキーフィールド

TairHashキーのフィールドのTTLを照会します。 単位:ミリ秒。

EXHTTL

EXHTTLキーフィールド

TairHashキーのフィールドのTTLを照会します。 単位は秒です。

EXHVER

EXHVERキーフィールド

TairHashキーのフィールドの現在のバージョン番号を照会します。

EXHSETVER

EXHSETVERキーフィールドのバージョン

TairHashキーのフィールドのバージョン番号を指定します。

EXHINCRBY

EXHINCRBYキーフィールドnum [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

TairHashキーのフィールドの値をnum値だけ増加させます。 num値は整数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。

説明

有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。

EXHINCRBYFLOAT

EXHINCRBYFLOATキーフィールドnum [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEEPTL]

TairHashキーのフィールドの値をnum値だけ増加させます。 num値は浮動小数点数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。

説明

有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。

EXHGETWITHVER

EXHGETWITHVERキーフィールド

TairHashキーからフィールドの値とバージョン番号を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。

EXHMGET

EXHMGETキーフィールド [field ...]

各クエリのTairHashキーから複数のフィールド値を取得します。 キーが存在しない場合、またはフィールドが存在しない場合は、nilが返されます。

EXHMGETWITHVER

EXHMGETWITHVERキーフィールド [フィールド...]

各クエリのTairHashキーから複数のフィールドの値とバージョン番号を取得します。

EXHLEN

EXHLENキー [NOEXP]

TairHashキーのフィールド数を取得します。 出力は、このコマンドが期限切れフィールドの受動的な削除をトリガしないか、または期限切れフィールドを除外しないので、削除されない期限切れフィールドの数を含むことができる。 有効期限が切れていないフィールドの数だけを取得する場合は、コマンドでNOEXPパラメーターを設定できます。

EXHEXISTS

EXHEXISTSキーフィールド

TairHashキーにフィールドが存在するかどうかをチェックします。

EXHSTRLEN

EXHSTRLENキーフィールド

TairHashキーからフィールド値の長さを取得します。

EXHKEYS

EXHKEYSキー

TairHashキーからすべてのフィールドを取得します。

EXHVALS

EXHVALSキー

TairHashキーからすべてのフィールド値を取得します。

爆発物

EXGETALLキー

TairHashキーからすべてのフィールドとその値を取得します。

EXHSCAN

EXHSCANキーopサブキー [マッチパターン] [カウント数]

TairHashキーをスキャンします。

説明

このコマンドは、DRAMベースのインスタンスでのみサポートされます。

EXHSCANUNORDER

EXHSCANUNORDERキーカーソル [マッチパターン] [カウント数]

TairHashキーをスキャンします。

説明

このコマンドは、永続メモリ最適化インスタンスでのみサポートされます。

排出

EXHDELキーフィールド [field ...]

TairHashキーからフィールドを削除します。 キーまたはフィールドが存在しない場合、値0が返されます。 フィールドが削除されると、値1が返されます。

DEL

DEL <key> [key ...]

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

説明

このトピックで使用されるコマンド構文の規則を次に示します。

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

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

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

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

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

EXHSET

項目

説明

構文

EXHSETキーフィールド値 [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABSバージョン] [KEEPTL]

時間の複雑さ

O(1)

コマンド説明

TairHashキーにフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 フィールドがすでに存在する場合、このコマンドはフィールドの現在の値を上書きします。

説明
  • 有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。

  • EXPIREまたはEXPIREATコマンドを実行して、キーの有効期限を指定することもできます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • value: フィールドの値。 フィールドは単一の値のみを持つことができます。

  • EX: フィールドの相対的な有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • EXAT: フィールドの絶対有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PX: フィールドの相対的な有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PXAT: フィールドの絶対有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • NX: フィールドが存在しない場合にのみ値が書き込まれるように指定します。

  • XX: フィールドが存在する場合にのみ値が書き込まれることを指定します。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

  • KEPTTL: EX、EXAT、PX、およびPXATパラメーターのいずれも指定されていない場合、フィールドの現在の有効期間 (TTL) を保持します。

    説明

    デフォルトでは、KEEPTTLパラメーターが指定されていない場合、EXHSETコマンドはフィールドの現在のTTLを削除します。

Output

  • フィールドが作成され、そのフィールドに値が設定されている場合、値1が返されます。

  • フィールドがすでに存在し、指定された値がフィールドの現在の値を上書きする場合、値0が返されます。

  • XXパラメーターが指定され、フィールドが存在しない場合、-1の値が返されます。

  • NXパラメーターが指定され、フィールドが存在する場合、-1の値が返されます。

  • VERパラメーターが指定され、VER値が現在のバージョン番号と一致しない場合、「ERR update version is stale」メッセージが返されます。

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

例:

サンプルコマンド:

EXHSET myhash field1 val EX 10

サンプル出力:

(integer) 1

排出量

項目

説明

構文

EXHGETキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーからフィールドの値を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • フィールドが存在し、操作が成功した場合、フィールドの値が返されます。

  • キーまたはフィールドが存在しない場合、nilが返されます。

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

例:

EXHSET myhash field1 valコマンドを事前に実行します。

サンプルコマンド:

EXHGET myhash field1

サンプル出力:

"val"

EXHMSET

項目

説明

構文

EXHMSETキーフィールド値 [フィールド値...]

時間の複雑さ

O(N)

コマンド説明

TairHashキーに複数のフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 これらのフィールドがすでにキーに存在する場合、このコマンドはこれらのフィールドの値を上書きします。

説明

キーを作成した後、EXHPEXPIREATEXHPEXPIREEXHEXPIREAT、またはEXHEXPIREコマンドを実行して、キーに追加されるフィールドの有効期限を指定できます。 EXPIREまたはEXPIREATコマンドを実行して、キーの有効期限を指定することもできます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • value: フィールドの値。 フィールドは単一の値のみを持つことができます。

Output

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

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

例:

サンプルコマンド:

EXHMSET myhash field1 val1 field2 val2

サンプル出力:

OK

EXHPEXPIREAT

項目

説明

構文

EXHPEXPIREATキーフィールドミリ秒-timestamp [VER | ABSバージョン]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの絶対有効期限を指定します。 単位:ミリ秒。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • ミリ秒-timestamp: ミリ秒の正確なUNIXタイムスタンプ。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

Output

  • フィールドが存在し、値がフィールドに設定されている場合、値1が返されます。

  • フィールドが存在しない場合、0の値が返されます。

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

例:

サンプルコマンド:

EXHPEXPIREAT myhash field1 1293840000

サンプル出力:

(integer) 1

EXHPEXPIRE

項目

説明

構文

EXHPEXPIREキーフィールドミリ秒 [VER | ABSバージョン]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの相対有効期限を指定します。 単位:ミリ秒。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • ミリ秒: 相対的な有効期限。 単位:ミリ秒。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

Output

  • フィールドが存在し、値がフィールドに設定されている場合、値1が返されます。

  • フィールドが存在しない場合、0の値が返されます。

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

例:

サンプルコマンド:

EXHPEXPIRE myhash field1 1000

サンプル出力:

(integer) 1

EXHEXPIREAT

項目

説明

構文

EXHEXPIREATキーフィールドtimestamp [VER | ABSバージョン]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの絶対有効期限を指定します。 単位は秒です。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • timestamp: 1秒まで正確なUNIXタイムスタンプ。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

Output

  • フィールドが存在し、値がフィールドに設定されている場合、値1が返されます。

  • フィールドが存在しない場合、0の値が返されます。

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

例:

サンプルコマンド:

EXHEXPIREAT myhash field1 1293840000

サンプル出力:

(integer) 1

EXHEXPIRE

項目

説明

構文

EXHEXPIREキーフィールド秒 [VER | ABSバージョン]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの相対有効期限を指定します。 単位は秒です。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • : 相対的な有効期限。 単位は秒です。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

Output

  • フィールドが存在し、値がフィールドに設定されている場合、値1が返されます。

  • フィールドが存在しない場合、0の値が返されます。

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

例:

サンプルコマンド:

EXHEXPIRE myhash field1 100

サンプル出力:

(integer) 1

EXHPTTL

項目

説明

構文

EXHPTTLキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドのTTLを照会します。 単位:ミリ秒。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • フィールドが存在し、フィールドにTTLが設定されていない場合、-1の値が返されます。

  • キーまたはフィールドが存在しない場合、-2の値が返されます。

  • フィールドが存在しない場合、-3の値が返されます。

  • フィールドが存在し、フィールドにTTLが設定されている場合、TTLが返されます。 単位:ミリ秒。

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

例:

事前にEXHSET myhash field1 val1 EX 100コマンドを実行します。

サンプルコマンド:

EXHPTTL myhash field1

サンプル出力:

(integer) 97213

EXHTTL

項目

説明

構文

EXHTTLキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドのTTLを照会します。 単位は秒です。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • キーまたはフィールドが存在しない場合、-2の値が返されます。

  • フィールドが存在し、フィールドにTTLが設定されていない場合、-1の値が返されます。

  • フィールドが存在し、フィールドにTTLが設定されている場合、TTLが返されます。 単位は秒です。

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

例:

事前にEXHSET myhash field1 val1 EX 100コマンドを実行します。

サンプルコマンド:

EXHTTL myhash field1

サンプル出力:

(integer) 85

EXHVER

項目

説明

構文

EXHVERキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの現在のバージョン番号を照会します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

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

  • フィールドが存在しない場合、-2の値が返されます。

  • 操作が成功した場合、フィールドのバージョン番号が返されます。

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

例:

サンプルコマンド:

EXHVER myhash field1

サンプル出力:

(integer) 1

EXHSETVER

項目

説明

構文

EXHSETVERキーフィールドのバージョン

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドのバージョン番号を指定します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • キーまたはフィールドが存在しない場合、値0が返されます。

  • バージョン番号が指定されている場合、値1が返されます。

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

例:

サンプルコマンド:

EXHSETVER myhash field1 3

サンプル出力:

(integer) 1

EXHINCRBY

項目

説明

構文

EXHINCRBYキーフィールドnum [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの値をnum値だけ増加させます。 num値は整数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。

説明

有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • num: フィールドの値を増やす整数。

  • EX: フィールドの相対的な有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • EXAT: フィールドの絶対有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PX: フィールドの相対的な有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PXAT: フィールドの絶対有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

  • MIN: フィールドの最小値。 フィールド値がこの下限未満の場合、エラーメッセージが返されます。

  • MAX: フィールドの最大値。 フィールド値がこの上限より大きい場合、エラーメッセージが返されます。

  • KEPTTL: EX、EXAT、PX、およびPXATパラメーターのいずれも指定されていない場合、フィールドの現在のTTLを保持します。

Output

  • 操作が成功した場合、num値だけ増加した値が返されます。

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

例:

事前にEXHMSET myhash field1 10コマンドを実行します。

サンプルコマンド:

EXHINCRBY myhash field1 100

サンプル出力:

(integer) 110

EXHINCRBYFLOAT

項目

説明

構文

EXHINCRBYFLOATキーフィールドnum [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEEPTL]

時間の複雑さ

O(1)

コマンド説明

TairHashキーのフィールドの値をnum値だけ増加させます。 num値は浮動小数点数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。

説明

有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

  • num: フィールドの値を増やす浮動小数点数。

  • EX: フィールドの相対的な有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • EXAT: フィールドの絶対有効期限。 単位は秒です。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PX: フィールドの相対的な有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • PXAT: フィールドの絶対有効期限。 単位:ミリ秒。 値0は、フィールドがすぐに期限切れになることを示します。 このパラメーターが指定されていない場合、フィールドは有効期限が切れません。

  • VER: フィールドのバージョン番号。

    • フィールドが存在する場合、このパラメーターで指定されたバージョン番号は現在のバージョン番号と照合されます。

      • バージョン番号が一致すると、システムはコマンドを実行し続け、バージョン番号を1だけ増やします。

      • バージョン番号が一致しない場合、エラーメッセージが返されます。

    • フィールドが存在しない場合、またはフィールドの現在のバージョン番号が0の場合、このパラメーターは無視され、このコマンドは引き続き実行されます。 操作が成功すると、バージョン番号は1に設定されます。

  • ABS: フィールドがすでに存在するかどうかに関係なく、フィールドが追加されたときにフィールドに割り当てることができる絶対バージョン番号。

  • MIN: フィールドの最小値。 フィールド値がこの下限未満の場合、エラーメッセージが返されます。

  • MAX: フィールドの最大値。 フィールド値がこの上限より大きい場合、エラーメッセージが返されます。

  • KEPTTL: EX、EXAT、PX、およびPXATパラメーターのいずれも指定されていない場合、フィールドの現在のTTLを保持します。

Output

  • 操作が成功した場合、num値だけ増加した値が返されます。

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

例:

事前にEXHMSET myhash field1 10コマンドを実行します。

サンプルコマンド:

EXHINCRBYFLOAT myhash field1 9.235

サンプル出力:

"19.235"

EXHGETWITHVER

項目

説明

構文

EXHGETWITHVERキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーからフィールドの値とバージョン番号を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • フィールドが存在し、操作が成功した場合、フィールドの値とバージョン番号が返されます。

  • キーまたはフィールドが存在しない場合、nilが返されます。

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

例:

サンプルコマンド:

EXHGETWITHVER myhash field1

サンプル出力:

1) "19.235"
2) (integer) 5

超過

項目

説明

構文

EXHMGETキーフィールド [field ...]

時間の複雑さ

O(1)

コマンド説明

各クエリのTairHashキーから複数のフィールド値を取得します。 キーが存在しない場合、またはフィールドが存在しない場合は、nilが返されます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

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

  • キーとフィールドが存在する場合、配列が返されます。 配列内の各要素は、フィールド値に対応する。

  • キーが存在し、特定のフィールドが存在しない場合、配列が返されます。 配列内の各要素は、フィールド値に対応する。 存在しないフィールドに対応する要素は、nilとして表示されます。

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

例:

EXHMSET myhash field1 10 field2 var1コマンドを事前に実行します。

サンプルコマンド:

EXHMGET myhash field1 field2

サンプル出力:

1) "10"
2) "var1"

EXHMGETWITHVER

項目

説明

構文

EXHMGETWITHVERキーフィールド [フィールド...]

時間の複雑さ

O(1)

コマンド説明

各クエリのTairHashキーから複数のフィールドの値とバージョン番号を取得します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

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

  • キーとフィールドが存在する場合、配列が返されます。 配列内の各要素は、フィールド値およびバージョン番号に対応する。

  • キーが存在し、特定のフィールドが存在しない場合、配列が返されます。 配列内の各要素は、フィールド値およびバージョン番号に対応する。 存在しないフィールドに対応する要素は、nilとして表示されます。

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

例:

EXHMSET myhash field1 10 field2 var1コマンドを事前に実行します。

サンプルコマンド:

 EXHMGETWITHVER myhash field1 field2

サンプル出力:

1) 1) "10"
   2) (integer) 1
2) 1) "var1"
   2) (integer) 1

EXHLEN

項目

説明

構文

EXHLENキー [NOEXP]

時間の複雑さ

時間複雑度は、NOEXPパラメータが指定されていない場合はO(1) であり、NOEXPパラメータが指定されている場合はO(N) である。

コマンド説明

TairHashキーのフィールド数を取得します。 出力は、このコマンドが期限切れフィールドの受動的な削除をトリガしないか、または期限切れフィールドを除外しないので、削除されない期限切れフィールドの数を含むことができる。 有効期限が切れていないフィールドの数だけを取得する場合は、コマンドでNOEXPパラメーターを設定できます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • NOEXP: 期限切れになっていないフィールドの数を返すように指定します。 デフォルトでは、このコマンドは期限切れフィールドの削除や除外をトリガーしません。 このため、このコマンドの出力には、削除されない期限切れのフィールドの数が含まれる場合があります。 有効期限が切れていないフィールドの数だけを取得する場合は、NOEXPパラメーターを設定できます。 NOEXPパラメーターを設定するときは、次の項目に注意してください。

    • システムはキー内のすべてのデータをスキャンするため、EXHLENコマンドの応答時間はキーのサイズによって決まります。

    • EXHLENコマンドの出力には期限切れフィールドの数は含まれません。これは、このコマンドが期限切れフィールドを除外しますが、それらを削除しないためです。

Output

  • キーが存在しないか、キーにフィールドが存在しない場合、値0が返されます。

  • 操作が成功した場合、キー内のフィールドの数が返されます。

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

例:

サンプルコマンド:

EXHLEN myhash

サンプル出力:

(integer) 2

EXHEXISTS

項目

説明

構文

EXHEXISTSキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーにフィールドが存在するかどうかをチェックします。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • キーまたはフィールドが存在しない場合、値0が返されます。

  • フィールドが存在する場合、値1が返されます。

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

例:

サンプルコマンド:

EXHEXISTS myhash field1

サンプル出力:

(integer) 1

エクストラレン

項目

説明

構文

EXHSTRLENキーフィールド

時間の複雑さ

O(1)

コマンド説明

TairHashキーからフィールド値の長さを取得します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • キーまたはフィールドが存在しない場合、値0が返されます。

  • 操作が成功した場合、フィールド値の長さが返されます。

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

例:

サンプルコマンド:

EXHSTRLEN myhash field1

サンプル出力:

(integer) 2

EXHKEYS

項目

説明

構文

EXHKEYSキー

時間の複雑さ

O(N)

コマンド説明

TairHashキーからすべてのフィールドを取得します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

Output

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

  • キーが存在する場合、配列が返されます。 配列内の各要素は、キー内のフィールドに対応する。

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

例:

EXHMSET myhash field1 10 field2 var1コマンドを事前に実行します。

サンプルコマンド:

EXHKEYS myhash

サンプル出力:

1) "field1"
2) "field2"

EXHVALS

項目

説明

構文

EXHVALSキー

時間の複雑さ

O(N)

コマンド説明

TairHashキーからすべてのフィールド値を取得します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

Output

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

  • キーが存在する場合、配列が返されます。 配列の各要素は、キーのフィールド値に対応します。

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

例:

EXHMSET myhash field1 10 field2 var1コマンドを事前に実行します。

サンプルコマンド:

EXHVALS myhash

サンプル出力:

1) "10"
2) "var1"

爆発

項目

説明

構文

EXGETALLキー

時間の複雑さ

O(N)

コマンド説明

TairHashキーからすべてのフィールドとその値を取得します。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

Output

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

  • キーが存在する場合、配列が返されます。 配列内の各要素は、キー内のフィールドと値のペアに対応します。

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

例:

EXHMSET myhash field1 10 field2 var1コマンドを事前に実行します。

サンプルコマンド:

EXHGETALL myhash

サンプル出力:

1) "field1"
2) "10"
3) "field2"
4) "var1"

EXHSCAN

項目

説明

構文

EXHSCANキーopサブキー [マッチパターン] [カウント数]

時間の複雑さ

時間の複雑さは、すべての呼に対してO(1) であり、完全な反復に対してO(N) である。

コマンド説明

TairHashキーをスキャンします。

説明

このコマンドは、DRAMベースのインスタンスでのみサポートされます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • op: スキャンの開始位置。 有効な値:

    • >: スキャンは、サブキー値よりも大きい値を持つ最初のフィールドから開始されます。

    • >=: スキャンは、サブキー値以上の値を持つ最初のフィールドから開始されます。

    • <: スキャンは、サブキー値未満の値を持つ最初のフィールドから開始されます。

    • <=: スキャンは、サブキー値以下の値を持つ最初のフィールドから開始されます。

    • ==: スキャンは、サブキー値に等しい値を持つ最初のフィールドから開始されます。

    • ^: 最初のフィールドからスキャンを開始します。

    • $: スキャンは最後のフィールドから始まります。

  • subkey: スキャンの開始位置を決定するためにopパラメータと一緒に使用されるパラメータ。 opパラメーターが ^ または $に設定されている場合、このパラメーターは無視されます。

  • MATCH: 正規表現パターンに基づいてスキャンするサブキーをフィルタリングします。

  • COUNT: 各クエリでスキャンできるフィールドの数を指定します。 デフォルト値は 10 です。

    説明

    COUNTパラメーターは、各クエリでスキャンされるフィールドの数を指定します。返されるフィールドの数がスキャンされたフィールドの数であることを保証しません。 返されるフィールドの数は、キーに存在するフィールドの数と、MATCHパラメーターが指定されているかどうかによって決まります。

Output

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

  • キーが存在する場合、2つの要素を含む配列が返されます。

    • 最初の要素は、次のスキャンが開始する最初のフィールドです。 キースキャンが完了すると、この要素は空のままになります。

    • 2番目の要素は、フィールドと値を含むスキャン結果です。

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

例:

事前にEXHMSET myhashkey field1 val1 field2 val2 fiel3 val3 field4 val4 field5 val5コマンドを実行します。

サンプルコマンド:

EXHSCAN myhashkey ^ xx COUNT 3

サンプル出力:

1) "field4"
2) 1) "field1"
   2) "val1"
   3) "field2"
   4) "val2"
   5) "field3"
   6) "val3"

EXHSCANUNORDER

項目

説明

構文

EXHSCANUNORDERキーカーソル [マッチパターン] [カウント数]

時間の複雑さ

時間の複雑さは、すべての呼に対してO(1) であり、完全な反復に対してO(N) である。

コマンド説明

TairHashキーをスキャンします。

説明

このコマンドは、永続メモリ最適化インスタンスでのみサポートされます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • cursor: このスキャンで使用されるカーソル。

  • MATCH: 正規表現パターンに基づいてスキャンするフィールドをフィルタリングします。

  • COUNT: 各クエリでスキャンできるフィールドの数を指定します。 デフォルト値は 10 です。

    説明

    COUNTパラメーターは、各クエリでスキャンされるフィールドの数を指定します。返されるフィールドの数がスキャンされたフィールドの数であることを保証しません。 返されるフィールドの数は、キーに存在するフィールドの数と、MATCHパラメーターが指定されているかどうかによって決まります。

Output

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

  • キーが存在する場合、2つの要素を含む配列が返されます。

    • 配列の最初の要素は、次のスキャンに使用されるカーソルです。 キースキャンが完了すると、値0が返されます。

    • 2番目の要素は、フィールドと値を含むスキャン結果です。

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

例:

事前にEXHMSET myhashkey field1 val1 field2 val2 fiel3 val3 field4 val4 field5 val5コマンドを実行します。

サンプルコマンド:

EXHSCANUNORDER myhashkey 0 COUNT 3

サンプル出力:

1) "1"
2) 1) "field5"
   2) "val5"
   3) "field2"
   4) "val2"

排出

項目

説明

構文

EXHDELキーフィールド [field ...]

時間の複雑さ

O(1)

コマンド説明

TairHashキーからフィールドを削除します。 キーまたはフィールドが存在しない場合、値0が返されます。 フィールドが削除されると、値1が返されます。

パラメーター

  • Key: このコマンドを実行して管理するTairHashデータを指定するキー。

  • field: キーの要素。 キーには複数のフィールドを含めることができます。

Output

  • キーまたはフィールドが存在しない場合、値0が返されます。

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

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

例:

サンプルコマンド:

EXHDEL myhash field1

サンプル出力:

(integer) 1