TairHash (exHashとも呼ばれます) は、フィールドの有効期限とバージョン番号を指定できる拡張ハッシュデータ構造です。 TairHashは柔軟性があり、ほとんどのシナリオでビジネス開発を簡素化できます。
概要
TairHashとRedis Hashは、さまざまなデータインターフェイスをサポートし、データ処理で高いパフォーマンスを提供します。 ただし、Redis Hashでは、キーの有効期限のみを指定できます。 TairHashでは、キーとフィールドの両方に有効期限を指定できます。 TairHashを使用して、フィールドのバージョン番号を指定することもできます。 TairHashは柔軟性があり、ほとんどのシナリオでビジネス開発を簡素化できます。 TairHashは、効率的なアクティブ有効期限アルゴリズムを使用して、フィールドの有効期限を確認し、期限切れフィールドを削除します。 このプロセスでは、データベースの応答時間は増加しません。
主な特徴
TairHashでは、フィールドの有効期限とバージョン番号を指定できます。
TairHashは、フィールドの効率的で柔軟な有効期限ポリシーをサポートします。 有効期限ポリシーは、アクティブまたはパッシブにすることができます。
TairHashは、Redis Hashと同様の構文を提供します。
このモジュールはオープンソースです。 詳細については、「TairHash」をご参照ください。
前提条件
インスタンスは、次のいずれかのTairシリーズタイプです。
マイナーバージョンが1.2.6以降の永続メモリ最適化インスタンス
最新のマイナーバージョンは、より多くの機能とより高い安定性を提供します。 インスタンスを最新のマイナーバージョンに更新することを推奨します。 詳細については、「インスタンスのマイナーバージョンの更新」をご参照ください。 インスタンスがクラスターまたは読み書き分離インスタンスの場合、インスタンスのプロキシノードを最新のマイナーバージョンに更新することを推奨します。 これにより、すべてのコマンドを期待どおりに実行できます。
注意事項
管理するTairHashデータは、Tairインスタンスに保存されます。
サポートされるコマンド
表 1. TairHashコマンド
コマンド | 構文 | 説明 |
| TairHashキーにフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 フィールドがすでに存在する場合、このコマンドはフィールドの現在の値を上書きします。 | |
| TairHashキーからフィールドの値を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。 | |
| TairHashキーに複数のフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 これらのフィールドがすでにキーに存在する場合、このコマンドはこれらのフィールドの値を上書きします。 | |
| TairHashキーのフィールドの絶対有効期限を指定します。 単位:ミリ秒。 | |
| TairHashキーのフィールドの相対有効期限を指定します。 単位:ミリ秒。 | |
| TairHashキーのフィールドの絶対有効期限を指定します。 単位は秒です。 | |
| TairHashキーのフィールドの相対有効期限を指定します。 単位は秒です。 | |
| TairHashキーのフィールドのTTLを照会します。 単位:ミリ秒。 | |
| TairHashキーのフィールドのTTLを照会します。 単位は秒です。 | |
| TairHashキーのフィールドの現在のバージョン番号を照会します。 | |
| TairHashキーのフィールドのバージョン番号を指定します。 | |
| TairHashキーのフィールドの値をnum値だけ増加させます。 num値は整数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。 説明 有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。 | |
| TairHashキーのフィールドの値をnum値だけ増加させます。 num値は浮動小数点数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。 説明 有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。 | |
| TairHashキーからフィールドの値とバージョン番号を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。 | |
| 各クエリのTairHashキーから複数のフィールド値を取得します。 キーが存在しない場合、またはフィールドが存在しない場合は、nilが返されます。 | |
| 各クエリのTairHashキーから複数のフィールドの値とバージョン番号を取得します。 | |
| TairHashキーのフィールド数を取得します。 出力は、このコマンドが期限切れフィールドの受動的な削除をトリガしないか、または期限切れフィールドを除外しないので、削除されない期限切れフィールドの数を含むことができる。 有効期限が切れていないフィールドの数だけを取得する場合は、コマンドでNOEXPパラメーターを設定できます。 | |
| TairHashキーにフィールドが存在するかどうかをチェックします。 | |
| TairHashキーからフィールド値の長さを取得します。 | |
| TairHashキーからすべてのフィールドを取得します。 | |
| TairHashキーからすべてのフィールド値を取得します。 | |
| TairHashキーからすべてのフィールドとその値を取得します。 | |
| TairHashキーをスキャンします。 説明 このコマンドは、DRAMベースのインスタンスでのみサポートされます。 | |
| TairHashキーをスキャンします。 説明 このコマンドは、永続メモリ最適化インスタンスでのみサポートされます。 | |
| TairHashキーからフィールドを削除します。 キーまたはフィールドが存在しない場合、値0が返されます。 フィールドが削除されると、値1が返されます。 | |
| 1つ以上のTairHashキーを削除します。 |
このトピックで使用されるコマンド構文の規則を次に示します。
Uppercase keyword
: commandキーワードを示します。イタリックテキスト
: 変数を示します。[options]
: 囲まれたパラメータがオプションであることを示します。 括弧で囲まれていないパラメータを指定する必要があります。A | B
: 縦棒 (|) で区切られたパラメータが相互に排他的であることを示します。 指定できるパラメーターは1つだけです。...
: このシンボルの前にあるパラメーターを繰り返し指定できることを示します。
EXHSET
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーにフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 フィールドがすでに存在する場合、このコマンドはフィールドの現在の値を上書きします。 説明
|
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
排出量
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーからフィールドの値を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
EXHMSET
項目 | 説明 |
構文 |
|
時間の複雑さ | O(N) |
コマンド説明 | TairHashキーに複数のフィールドを追加します。 キーが存在しない場合は、キーが作成されます。 これらのフィールドがすでにキーに存在する場合、このコマンドはこれらのフィールドの値を上書きします。 説明 キーを作成した後、EXHPEXPIREAT、EXHPEXPIRE、EXHEXPIREAT、またはEXHEXPIREコマンドを実行して、キーに追加されるフィールドの有効期限を指定できます。 EXPIREまたはEXPIREATコマンドを実行して、キーの有効期限を指定することもできます。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHPEXPIREAT
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの絶対有効期限を指定します。 単位:ミリ秒。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHPEXPIRE
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの相対有効期限を指定します。 単位:ミリ秒。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHEXPIREAT
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの絶対有効期限を指定します。 単位は秒です。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHEXPIRE
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの相対有効期限を指定します。 単位は秒です。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHPTTL
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドのTTLを照会します。 単位:ミリ秒。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
EXHTTL
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドのTTLを照会します。 単位は秒です。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
EXHVER
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの現在のバージョン番号を照会します。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHSETVER
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドのバージョン番号を指定します。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHINCRBY
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの値をnum値だけ増加させます。 num値は整数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。 説明 有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
EXHINCRBYFLOAT
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーのフィールドの値をnum値だけ増加させます。 num値は浮動小数点数でなければなりません。 キーが存在しない場合は、キーが作成されます。 フィールドが存在しない場合、このコマンドはフィールドを追加し、フィールドの値を0に設定してから、フィールドの値を増やします。 説明 有効期限が切れていないフィールドを追加するには、有効期限を指定せずにこのコマンドを実行してフィールドを追加します。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
EXHGETWITHVER
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーからフィールドの値とバージョン番号を取得します。 キーまたはフィールドが存在しない場合、nilが返されます。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
超過
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | 各クエリのTairHashキーから複数のフィールド値を取得します。 キーが存在しない場合、またはフィールドが存在しない場合は、nilが返されます。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
EXHMGETWITHVER
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | 各クエリのTairHashキーから複数のフィールドの値とバージョン番号を取得します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
EXHLEN
項目 | 説明 |
構文 |
|
時間の複雑さ | 時間複雑度は、NOEXPパラメータが指定されていない場合はO(1) であり、NOEXPパラメータが指定されている場合はO(N) である。 |
コマンド説明 | TairHashキーのフィールド数を取得します。 出力は、このコマンドが期限切れフィールドの受動的な削除をトリガしないか、または期限切れフィールドを除外しないので、削除されない期限切れフィールドの数を含むことができる。 有効期限が切れていないフィールドの数だけを取得する場合は、コマンドでNOEXPパラメーターを設定できます。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHEXISTS
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーにフィールドが存在するかどうかをチェックします。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
エクストラレン
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーからフィールド値の長さを取得します。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|
EXHKEYS
項目 | 説明 |
構文 |
|
時間の複雑さ | O(N) |
コマンド説明 | TairHashキーからすべてのフィールドを取得します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
EXHVALS
項目 | 説明 |
構文 |
|
時間の複雑さ | O(N) |
コマンド説明 | TairHashキーからすべてのフィールド値を取得します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
爆発
項目 | 説明 |
構文 |
|
時間の複雑さ | O(N) |
コマンド説明 | TairHashキーからすべてのフィールドとその値を取得します。 |
パラメーター |
|
Output |
|
例: |
サンプルコマンド:
サンプル出力:
|
EXHSCAN
項目 | 説明 |
構文 |
|
時間の複雑さ | 時間の複雑さは、すべての呼に対してO(1) であり、完全な反復に対してO(N) である。 |
コマンド説明 | TairHashキーをスキャンします。 説明 このコマンドは、DRAMベースのインスタンスでのみサポートされます。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
EXHSCANUNORDER
項目 | 説明 |
構文 |
|
時間の複雑さ | 時間の複雑さは、すべての呼に対してO(1) であり、完全な反復に対してO(N) である。 |
コマンド説明 | TairHashキーをスキャンします。 説明 このコマンドは、永続メモリ最適化インスタンスでのみサポートされます。 |
パラメーター |
|
Output |
|
例: | 事前に サンプルコマンド:
サンプル出力:
|
排出
項目 | 説明 |
構文 |
|
時間の複雑さ | O(1) |
コマンド説明 | TairHashキーからフィールドを削除します。 キーまたはフィールドが存在しない場合、値0が返されます。 フィールドが削除されると、値1が返されます。 |
パラメーター |
|
Output |
|
例: | サンプルコマンド:
サンプル出力:
|