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

Tair (Redis® OSS-Compatible):exHash

最終更新日:Feb 04, 2026

TairHash (exHash) は、各フィールドに有効期限とバージョンを設定できるハッシュデータ構造です。この機能により、ハッシュデータ構造の柔軟性が向上し、多くのシナリオでの開発が簡素化されます。

TairHash の概要

TairHash は、Redis ハッシュと同様に豊富なデータインターフェイスと高いパフォーマンスを提供します。ただし、Redis ハッシュではキー単位でのみ有効期限を設定できるのに対し、TairHash では個々のフィールドごとに有効期限とバージョンを設定できます。これにより、ハッシュデータ構造の柔軟性が大幅に向上し、開発が効率化されます。TairHash は、応答時間に顕著な影響を与えることなく期限切れフィールドをチェックおよび削除する、効率的なアクティブエクスパイアアルゴリズムを使用します。

主な特徴

  • 各フィールドに有効期限とバージョンを設定できます。

  • フィールドに対して、効率的かつ柔軟なアクティブおよびパッシブな有効期限ポリシーをサポートしています。

  • ネイティブの Redis ハッシュデータ型と類似した構文を使用します。

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

前提条件

インスタンスは Tair です。

説明

最新のマイナーバージョンでは、追加機能と安定性の向上が提供されています。インスタンスを最新のマイナーバージョンに更新してください。詳細については、「マイナーバージョンの更新」をご参照ください。ご利用のインスタンスがクラスタアーキテクチャまたは読み書き分離アーキテクチャを使用している場合、プロキシノードも最新のマイナーバージョンに更新する必要があります。更新しないと、一部のコマンドが認識されない可能性があります。

注意事項

これらのコマンドは、Tair インスタンス内の TairHash データに対して操作を行います。

コマンド

表 1. TairHash コマンド

コマンド

構文

説明

EXHSET

EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL]

指定された TairHash キーにフィールドを追加します。キーが存在しない場合は、自動的に作成されます。フィールドがすでに存在する場合は、その値が上書きされます。

EXHGET

EXHGET key field

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

EXHMSET

EXHMSET key field value [field value ...]

指定された TairHash キーに複数のフィールドを追加します。キーが存在しない場合は、自動的に作成されます。フィールドがすでに存在する場合は、その値が上書きされます。

EXHPEXPIREAT

EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version]

指定された TairHash キー内のフィールドに絶対的な有効期限を設定します。時間はミリ秒単位で正確です。

EXHPEXPIRE

EXHPEXPIRE key field milliseconds [VER | ABS version]

指定された TairHash キー内のフィールドに相対的な有効期限(ミリ秒単位)を設定します。

EXHEXPIREAT

EXHEXPIREAT key field timestamp [VER | ABS version]

指定された TairHash キー内のフィールドに絶対的な有効期限を設定します。時間は秒単位で正確です。

EXHEXPIRE

EXHEXPIRE key field seconds [VER | ABS version]

指定された TairHash キー内のフィールドに相対的な有効期限(秒単位)を設定します。

EXHPTTL

EXHPTTL key field

指定された TairHash キー内のフィールドの残り TTL を取得します。時間はミリ秒単位です。

EXHTTL

EXHTTL key field

指定された TairHash キー内のフィールドの残り TTL を取得します。時間は秒単位です。

EXHVER

EXHVER key field

指定された TairHash キー内のフィールドの現在のバージョン番号を取得します。

EXHSETVER

EXHSETVER key field version

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

EXHINCRBY

EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

指定された TairHash キー内のフィールドの整数値を指定された数値分増加させます。キーが存在しない場合は、自動的に作成されます。指定されたフィールドが存在しない場合は、値 0 でフィールドが作成された後、増分操作が実行されます。

説明

フィールドにタイムアウトを設定した後、再度このコマンドを実行する際にタイムアウトを指定しなかった場合、そのフィールドは永久に有効期限なしに設定されます。

EXHINCRBYFLOAT

EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

指定された TairHash キー内のフィールドの浮動小数点数値を指定された数値分増加させます。キーが存在しない場合は、自動的に作成されます。指定されたフィールドが存在しない場合は、値 0 でフィールドが作成された後、増分操作が実行されます。

説明

フィールドにタイムアウトを設定した後、再度このコマンドを実行する際にタイムアウトを指定しなかった場合、そのフィールドは永久に有効期限なしに設定されます。

EXHGETWITHVER

EXHGETWITHVER key field

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

EXHMGET

EXHMGET key field [field ...]

指定された TairHash キー内の複数のフィールドの値を取得します。キーまたはフィールドが存在しない場合は nil を返します。

EXHMGETWITHVER

EXHMGETWITHVER key field [field ...]

指定された TairHash キー内の複数のフィールドの値とバージョンを取得します。

EXHLEN

EXHLEN key [NOEXP]

指定された TairHash キー内のフィールド数を取得します。このコマンドはパッシブエビクションをトリガーせず、期限切れフィールドをフィルターしません。そのため、結果には期限切れ済みだが削除されていないフィールドが含まれる可能性があります。非期限切れフィールドの数のみを返すには、NOEXP オプションを指定してください。

EXHEXISTS

EXHEXISTS key field

TairHash キー内に指定されたフィールドが存在するかどうかを確認します。

EXHSTRLEN

EXHSTRLEN key field

指定された TairHash キー内のフィールドの値の長さを取得します。

EXHKEYS

EXHKEYS key

指定された TairHash キー内のすべてのフィールドを取得します。

EXHVALS

EXHVALS key

指定された TairHash キー内のすべてのフィールドの値を取得します。

EXHGETALL

EXHGETALL key

指定された TairHash キー内のすべてのフィールドとその値を取得します。

EXHSCAN

EXHSCAN key op subkey [MATCH pattern] [COUNT count]

指定された TairHash キーをスキャンします。

説明

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

EXHDEL

EXHDEL key field [field ...]

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

DEL

DEL <key> [key ...]

ネイティブの Redis DEL コマンドを使用して、1 つ以上の TairHash キーを削除します。

説明

本トピックで使用されているコマンド構文の規則は以下のとおりです。

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

  • 斜体のテキスト:変数を示します。

  • [オプション]:角括弧で囲まれたパラメーターは省略可能です。角括弧で囲まれていないパラメーターは必ず指定する必要があります。

  • A|B:縦棒 (|) で区切られたパラメーターは相互排他です。いずれか 1 つのみを指定できます。

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

EXHSET

カテゴリ

説明

構文

EXHSET key field value [EX time] [EXAT time] [PX time] [PXAT time] [NX | XX] [VER | ABS version] [KEEPTTL]

時間計算量

O(1)

コマンドの説明

指定された TairHash キーにフィールドを追加します。キーが存在しない場合は、自動的に作成されます。フィールドがすでに存在する場合は、その値が上書きされます。

説明
  • フィールドにタイムアウトを設定した後、再度このコマンドを実行する際にタイムアウトを指定しなかった場合、そのフィールドは永久に有効期限なしに設定されます。

  • キー全体に有効期限を設定するには、EXPIRE コマンドまたは EXPIREAT コマンドを使用します。

オプション

  • Key:TairHash キー。

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

  • value:フィールドの値。1 つのフィールドには 1 つの値のみを設定できます。

  • EX:フィールドの相対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • EXAT:フィールドの絶対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

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

  • PXAT:フィールドの絶対的な有効期限(ミリ秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • NX:フィールドが存在しない場合にのみ挿入します。

  • XX:フィールドがすでに存在する場合にのみ挿入します。

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

  • KEEPTTLEX、EXAT、PX、または PXAT オプションを指定しない場合、フィールドの現在の有効期限設定を保持します。

    説明

    KEEPTTL オプションを使用しない場合、EXHSET コマンドはデフォルトでフィールドの元の有効期限を削除します。

戻り値

  • 1:新しいフィールドが作成され、その値が設定されました。

  • 0:フィールドが存在し、古い値が上書きされました。

  • -1:XX オプションが指定されていますが、フィールドが存在しません。

  • -1:NX オプションが指定されていますが、フィールドがすでに存在します。

  • "ERR update version is stale":VER オプションが指定されており、バージョンが現在のバージョンと一致しません。

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

サンプルコマンド:

EXHSET myhash field1 val EX 10

サンプル戻り値:

(integer) 1

EXHGET

カテゴリ

説明

構文

EXHGET key field

時間計算量

O(1)

コマンドの説明

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

オプション

  • Key:TairHash キー。

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

戻り値

  • フィールドの値:フィールドが存在し、操作が成功しました。

  • nil:キーまたはフィールドが存在しません。

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

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

サンプルコマンド:

EXHGET myhash field1

サンプル戻り値:

"val"

EXHMSET

カテゴリ

説明

構文

EXHMSET key field value [field value ...]

時間計算量

O(N)

コマンドの説明

指定された TairHash キーに複数のフィールドを追加します。キーが存在しない場合は、自動的に作成されます。フィールドがすでに存在する場合は、その値が上書きされます。

説明

キーを作成した後、フィールドに有効期限を設定するには、EXHPEXPIREATEXHPEXPIREEXHEXPIREAT、または EXHEXPIRE コマンドを使用できます。また、キー全体に有効期限を設定するには、EXPIRE コマンドまたは EXPIREAT コマンドを使用できます。

オプション

  • Key:TairHash キー。

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

  • value:フィールドの値。1 つのフィールドには 1 つの値のみを設定できます。

戻り値

  • OK:操作が成功しました。

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

サンプルコマンド:

EXHMSET myhash field1 val1 field2 val2

サンプル戻り値:

OK

EXHPEXPIREAT

カテゴリ

説明

構文

EXHPEXPIREAT key field milliseconds-timestamp [VER | ABS version]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドに絶対的な有効期限を設定します。時間はミリ秒単位で正確です。

オプション

  • Key:TairHash キー。

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

  • milliseconds-timestamp:ミリ秒単位で正確な UNIX タイムスタンプ。

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

戻り値

  • フィールドが存在し、正常に 1 にセットされます。

  • 0:フィールドが存在しません。

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

サンプルコマンド:

EXHPEXPIREAT myhash field1 1293840000

サンプル戻り値:

(integer) 1

EXHPEXPIRE

カテゴリ

説明

構文

EXHPEXPIRE key field milliseconds [VER | ABS version]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドに相対的な有効期限(ミリ秒単位)を設定します。

オプション

  • Key:TairHash キー。

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

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

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

戻り値

  • 1:フィールドが存在し、正常に設定されました。

  • 0:フィールドが存在しません。

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

サンプルコマンド:

EXHPEXPIRE myhash field1 1000

サンプル戻り値:

(integer) 1

EXHEXPIREAT

カテゴリ

説明

構文

EXHEXPIREAT key field timestamp [VER | ABS version]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドに絶対的な有効期限を設定します。時間は秒単位で正確です。

オプション

  • Key:TairHash キー。

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

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

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

戻り値

  • フィールドは正常に 1 にセットされました。

  • 0:フィールドが存在しません。

  • それ以外の場合、対応する異常情報が返されます。

サンプルコマンド:

EXHEXPIREAT myhash field1 1293840000

サンプル戻り値:

(integer) 1

EXHEXPIRE

カテゴリ

説明

構文

EXHEXPIRE key field seconds [VER | ABS version]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドに相対的な有効期限(秒単位)を設定します。

オプション

  • Key:TairHash キー。

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

  • seconds:相対的な有効期限(秒単位)。

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

戻り値

  • フィールドが存在し、正常に設定された場合:1。

  • 0:フィールドが存在しません。

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

サンプルコマンド:

EXHEXPIRE myhash field1 100

サンプル戻り値:

(integer) 1

EXHPTTL

カテゴリ

説明

構文

EXHPTTL key field

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの残り TTL を取得します。時間はミリ秒単位です。

オプション

  • Key:TairHash キー。

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

戻り値

  • -1:フィールドが存在しますが、有効期限が設定されていません。

  • -2:キーが存在しません。

  • -3:フィールドが存在しません。

  • 残り TTL(ミリ秒単位):フィールドが存在し、有効期限が設定されています。

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

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

サンプルコマンド:

EXHPTTL myhash field1

サンプル戻り値:

(integer) 97213

EXHTTL

カテゴリ

説明

構文

EXHTTL key field

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの残り TTL を取得します。時間は秒単位です。

オプション

  • Key:コマンドを呼び出す TairHash を指定するキー。

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

戻り値

  • -2:キーが存在しません。

  • -3:フィールドが存在しません。

  • -1:フィールドが存在しますが、有効期限が設定されていません。

  • 残り TTL(秒単位):フィールドが存在し、有効期限が設定されています。

  • それ以外の場合、対応する異常情報が返されます。

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

サンプルコマンド:

EXHTTL myhash field1

サンプル戻り値:

(integer) 85

EXHVER

カテゴリ

説明

構文

EXHVER key field

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの現在のバージョン番号を取得します。

オプション

  • Key:TairHash キー。

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

戻り値

  • -1:キーが存在しません。

  • -2:フィールドが存在しません。

  • フィールドのバージョン番号:クエリが成功しました。

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

サンプルコマンド:

EXHVER myhash field1

サンプル戻り値:

(integer) 1

EXHSETVER

カテゴリ

説明

構文

EXHSETVER key field version

時間計算量

O(1)

コマンドの説明

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

オプション

  • Key:TairHash キー。

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

戻り値

  • 0:TairHash キーまたはフィールドが存在しません。

  • 正常に設定されました:1。

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

サンプルコマンド:

EXHSETVER myhash field1 3

サンプル戻り値:

(integer) 1

EXHINCRBY

カテゴリ

説明

構文

EXHINCRBY key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの整数値を指定された数値分増加させます。キーが存在しない場合は、自動的に作成されます。指定されたフィールドが存在しない場合は、値 0 でフィールドが作成された後、増分操作が実行されます。

説明

フィールドにタイムアウトを設定した後、再度このコマンドを実行する際にタイムアウトを指定しなかった場合、そのフィールドは永久に有効期限なしに設定されます。

オプション

  • Key:TairHash キー。

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

  • num:フィールドの値を増加させる整数。

  • EX:フィールドの相対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • EXAT:フィールドの絶対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

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

  • PXAT:フィールドの絶対的な有効期限(ミリ秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

  • MIN:最小値。値が最小値未満の場合、エラーが返されます。

  • MAX:最大値。値が最大値を超える場合、エラーが返されます。

  • KEEPTTLEX、EXAT、PX、または PXAT オプションを指定しない場合、フィールドの現在の有効期限設定を保持します。

戻り値

  • 成功:値と num の合計。

  • それ以外の場合、エラーが発生します。

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

サンプルコマンド:

EXHINCRBY myhash field1 100

サンプル戻り値:

(integer) 110

EXHINCRBYFLOAT

カテゴリ

説明

構文

EXHINCRBYFLOAT key field num [EX time] [EXAT time] [PX time] [PXAT time] [VER | ABS version] [MIN minval] [MAX maxval] [KEEPTTL]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの浮動小数点数値を指定された数値分増加させます。キーが存在しない場合は、自動的に作成されます。指定されたフィールドが存在しない場合は、値 0 でフィールドが作成された後、増分操作が実行されます。

説明

フィールドにタイムアウトを設定した後、再度このコマンドを実行する際にタイムアウトを指定しなかった場合、そのフィールドは永久に有効期限なしに設定されます。

オプション

  • Key:TairHash キー。

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

  • num:フィールドの値を増加させる浮動小数点数。

  • EX:フィールドの相対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • EXAT:フィールドの絶対的な有効期限(秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

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

  • PXAT:フィールドの絶対的な有効期限(ミリ秒単位)。値が 0 の場合、フィールドは直ちに期限切れになります。このパラメーターを指定しない場合、フィールドは期限切れになりません

  • VER:バージョン番号。

    • フィールドが存在する場合、現在のバージョンと指定されたバージョンを比較します。

      • 一致する場合、操作が実行され、バージョン番号が 1 増加します。

      • 一致しない場合、エラーが返されます。

    • フィールドが存在しない、または現在のバージョンが 0 の場合、指定されたバージョンは無視され、操作が実行されます。操作が成功すると、バージョン番号は 1 になります。

  • ABS:絶対バージョン番号。フィールドを挿入する際に、フィールドの存在に関係なく、そのバージョンをこのパラメーターの値に設定できます。

  • MIN:最小値。値が最小値未満の場合、エラーが返されます。

  • MAX:最大値。値が最大値を超える場合、エラーが返されます。

  • KEEPTTLEX、EXAT、PX、または PXAT オプションを指定しない場合、フィールドの現在の有効期限設定を保持します。

戻り値

  • 成功:値と num の合計。

  • それ以外の場合、例外が返されます。

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

サンプルコマンド:

EXHINCRBYFLOAT myhash field1 9.235

サンプル戻り値:

"19.235"

EXHGETWITHVER

カテゴリ

説明

構文

EXHGETWITHVER key field

時間計算量

O(1)

コマンドの説明

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

オプション

  • Key:TairHash キー。

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

戻り値

  • フィールドの値とバージョン:フィールドが存在し、操作が成功しました。

  • nil:キーまたはフィールドが存在しません。

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

サンプルコマンド:

EXHGETWITHVER myhash field1

サンプル戻り値:

1) "19.235"
2) (integer) 5

EXHMGET

カテゴリ

説明

構文

EXHMGET key field [field ...]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内の複数のフィールドの値を取得します。キーまたはフィールドが存在しない場合は nil を返します。

オプション

  • Key:TairHash キー。

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

戻り値

  • nil:キーが存在しません。

  • 各要素がフィールドの値である配列:キーが存在し、指定されたすべてのフィールドが存在します。

  • 各要素がフィールドの値である配列。存在しないフィールドの要素は nil になります:キーが存在しますが、指定されたフィールドの一部が存在しません。

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

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

サンプルコマンド:

EXHMGET myhash field1 field2

サンプル応答:

1) "10"
2) "var1"

EXHMGETWITHVER

カテゴリ

説明

構文

EXHMGETWITHVER key field [field ...]

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内の複数のフィールドの値とバージョンを取得します。

オプション

  • Key:TairHash キー。

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

戻り値

  • 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 key [NOEXP]

時間計算量

NOEXP オプションが指定されていない場合は O(1)。NOEXP オプションが指定されている場合は O(N)。

コマンドの説明

指定された TairHash キー内のフィールド数を取得します。このコマンドはパッシブエビクションをトリガーせず、期限切れフィールドをフィルターしません。そのため、結果には期限切れ済みだが削除されていないフィールドが含まれる可能性があります。非期限切れフィールドの数のみを返すには、NOEXP オプションを指定してください。

オプション

  • Key:TairHash キー。

  • NOEXP:デフォルトでは、このコマンドはパッシブエビクションをトリガーせず、期限切れフィールドをフィルターしません。結果には、期限切れ済みだが削除されていないフィールドが含まれる可能性があります。非期限切れフィールドの数のみを返すには、NOEXP オプションを指定してください。NOEXP オプションを指定する場合、以下の点にご注意ください。

    • EXHLEN コマンドの応答時間は、TairHash キーのサイズに影響されます。これは、キー全体を走査する必要があるためです。

    • EXHLEN コマンドは、結果から期限切れフィールドをフィルターしますが、期限切れフィールドはエビクションされません。

戻り値

  • 0:キーまたはフィールドが存在しません。

  • フィールド数:操作が成功しました。

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

サンプルコマンド:

EXHLEN myhash

サンプル応答:

(integer) 2

EXHEXISTS

カテゴリ

説明

構文

EXHEXISTS key field

時間計算量

O(1)

コマンドの説明

TairHash キー内に指定されたフィールドが存在するかどうかを確認します。

オプション

  • Key:TairHash キー。

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

戻り値

  • 0:キーまたはフィールドが存在しません。

  • 1:フィールドが存在します。

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

サンプルコマンド:

EXHEXISTS myhash field1

サンプル戻り値:

(integer) 1

EXHSTRLEN

カテゴリ

説明

構文

EXHSTRLEN key field

時間計算量

O(1)

コマンドの説明

指定された TairHash キー内のフィールドの値の長さを取得します。

オプション

  • Key:TairHash キー。

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

戻り値

  • 0:キーまたはフィールドが存在しません。

  • 値の長さ:クエリが成功しました。

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

サンプルコマンド:

EXHSTRLEN myhash field1

サンプル戻り値:

(integer) 2

EXHKEYS

カテゴリ

説明

構文

EXHKEYS key

時間計算量

O(N)

コマンドの説明

指定された TairHash キー内のすべてのフィールドを取得します。

オプション

  • Key:TairHash キー。

戻り値

  • 空の配列:キーが存在しません。

  • キーが存在する場合、返される値は TairHash 内のフィールドに対応する要素を持つ配列です。

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

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

サンプルコマンド:

EXHKEYS myhash

サンプル戻り値:

1) "field1"
2) "field2"

EXHVALS

カテゴリ

説明

構文

EXHVALS key

時間計算量

O(N)

コマンドの説明

指定された TairHash キー内のすべてのフィールドの値を取得します。

オプション

  • Key:TairHash キー。

戻り値

  • キーが見つからない場合、空の配列が返されます。

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

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

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

サンプルコマンド:

EXHVALS myhash

サンプル戻り値:

1) "10"
2) "var1"

EXHGETALL

カテゴリ

説明

構文

EXHGETALL key

時間計算量

O(N)

コマンドの説明

指定された TairHash キー内のすべてのフィールドとその値を取得します。

オプション

  • Key:TairHash キー。

戻り値

  • 空の配列:キーが存在しません。

  • キーが存在することを示す、TairHash キー内のフィールドと値のペアの配列です。

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

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

サンプルコマンド:

EXHGETALL myhash

サンプル応答:

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

EXHSCAN

カテゴリ

説明

構文

EXHSCAN key op subkey [MATCH pattern] [COUNT count]

時間計算量

1 回の呼び出しにつき O(1)、完全な走査には O(N) です。

コマンドの説明

指定された TairHash キーをスキャンします。

説明

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

オプション

  • key:TairHash キー。

  • op:スキャンの開始位置。有効な値は以下のとおりです。

    • >:subkey より大きい最初のフィールドから開始します。

    • >=:subkey 以上である最初のフィールドから開始します。

    • <:subkey より小さい最初のフィールドから開始します。

    • <=:subkey 以下である最初のフィールドから開始します。

    • ==:subkey と等しい最初のフィールドから開始します。

    • ^:最初のフィールドから開始します。

    • $:最後のフィールドから開始します。

  • subkey:op オプションと併用して、スキャンの開始位置を設定します。op が ^ または $ に設定されている場合、この値は無視されます。

  • MATCH:subkey の正規表現パターンに基づいてスキャン結果をフィルターします。

  • COUNT:1 回の操作でスキャンするフィールド数。デフォルト値は 10 です。

    説明

    COUNT は、毎回スキャンするフィールド数を指定しますが、結果セット内のフィールド数が COUNT の値と必ずしも一致するとは限りません。結果セットのサイズは、TairHash キー内の現在のフィールド数および MATCH オプションによるフィルタリングの有無に依存します。

戻り値

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

  • キーが存在する場合、戻り値は 2 つの要素を含む配列です。

    • 最初の要素:次のスキャンの開始フィールド。キーのスキャンが完了した場合、この要素は空になります。

    • 2 番目の要素:現在のスキャンの結果で、フィールドと値を含みます。

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

事前に EXHMSET myhashkey field1 val1 field2 val2 field3 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"

EXHDEL

カテゴリ

説明

構文

EXHDEL key field [field ...]

時間計算量

O(1)

コマンドの説明

指定された TairHash キーからフィールドを削除します。キーまたはフィールドが存在しない場合は 0 を返します。削除が成功した場合は 1 を返します。

オプション

  • Key:TairHash キー。

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

戻り値

  • 0:キーまたはフィールドが存在しません。

  • 1:削除が成功しました。

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

サンプルコマンド:

EXHDEL myhash field1

サンプル戻り値:

(integer) 1

よくある質問

  • Q:同じデータに対して、exHash はなぜ Redis Community Edition の標準ハッシュよりも多くのメモリを使用するのですか?

    A:exHash では、個々のフィールドに有効期限やバージョンを設定できます。これにより、データ構造内に追加のメタデータを格納する必要があるため、Redis Community Edition の標準ハッシュと比べてメモリ使用量が多くなります。