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

Tair (Redis® OSS-Compatible):exString

最終更新日:Sep 12, 2024

TairString (exString) は、バージョン番号を含む文字列です。 このトピックでは、TairStringデータ構造でサポートされているコマンドについて説明します。

概要

ネイティブRedis文字列は、キーと値のペア構造を使用します。 TairStringsには、楽観的なロックなどのシナリオをサポートするキー、値、バージョン番号が含まれています。 ネイティブのRedis文字列では、INCRBYコマンドとINCRBYFLOATコマンドを使用して文字列値を増減します。 TairStringsでは、これらのコマンドによって返される出力の範囲を制限できます。 出力が指定された範囲外の場合、エラーメッセージが返されます。

主な特徴

  • TairStringはバージョン番号を含む。

  • TairStringsを使用すると、これらのコマンドを実行して値を増やすときに、INCRBYおよびINCRBYFLOATコマンド出力の範囲を制限できます。

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

ベストプラクティス

前提条件

インスタンスは、マイナーバージョンが1.2.3以降のTair DRAMベースまたは永続メモリ最適化インスタンスです。

説明

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

注意事項

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

説明

TairインスタンスでネイティブのRedis文字列とTairStringsを同時に管理できます。 ただし、ネイティブのRedis文字列は、このトピックで説明するコマンドをサポートしていません。

サポートされるコマンド

表 1. TairStringコマンド

コマンド

構文

説明

EXSET

EXSETキー値 [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [KEPTTL]

キーが存在しない場合は、TairStringキーを作成し、キーに値を書き込みます。 キーが既に存在する場合、コマンドはキーの値を上書きします。

EXGET

EXGETキー

TairStringキーの値とバージョン番号を取得します。

EXSETVER

EXSETVERキーバージョン

TairStringキーのバージョン番号を指定します。

EXINCRBY

EXINCRBYキーnum [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

TairStringキーの値を増減します。 numパラメーターの値は、LONG型である必要があります。

EXINCRBYFLOAT

EXINCRBYFLOATキーnum [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

TairStringキーの値を増減します。 numパラメーターの値は、DOUBLE型である必要があります。

EXCAS

EXCASキーの新しい値のバージョン

キーの現在のバージョン番号が指定されたバージョン番号と一致する場合、TairStringキーの値を更新します。 数値が一致しない場合、コマンドはキーの元の値とバージョン番号を返します。

EXCAD

EXCADキーバージョン

キーの現在のバージョン番号が指定されたバージョン番号と一致すると、TairStringキーを削除します。

DEL

DELキー [キー...]

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

説明

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

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

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

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

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

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

EXSET

項目

説明

構文

EXSETキー値 [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [KEPTTL]

時間の複雑さ

O(1)

コマンド説明

キーが存在しない場合は、TairStringキーを作成し、キーに値を書き込みます。 キーが既に存在する場合、コマンドはキーの値を上書きします。

パラメーター

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

  • value: キーに書き込む値。

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

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

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

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

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

  • XX: キーが存在する場合にのみ値がキーに書き込まれるように指定します。

  • VER: キーのバージョン番号。

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

      • バージョン番号が一致すると、値がキーに書き込まれ、バージョン番号が1だけ増加します。

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

    • キーが存在しない場合、またはキーの現在のバージョン番号が0の場合、指定されたバージョン番号は有効になりません。 この場合、値はキーに書き込まれ、バージョン番号は1に設定されます。

  • ABS: キーの絶対バージョン番号。 このパラメーターを指定すると、キーの現在のバージョン番号に関係なく、値がキーに書き込まれます。 そして、バージョン番号はABS値で上書きされる。

  • KEPTTL: キーの残りの有効期間 (TTL) を継承します。 このパラメーターは、EXPXEXATPXATと一緒に設定することはできません。

    説明

    KEEPTLEXPXなど、キーの有効期限に関連するパラメーターを設定しない場合、キーは期限切れになりません。

Output

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

  • XXパラメーターが指定され、キーが存在しない場合、nilが返されます。

  • NXパラメーターが指定され、キーがすでに存在する場合、nilが返されます。

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

例:

サンプルコマンド:

EXSET foo bar EX 10 NX ABS 100

サンプル出力:

OK

EXGET

項目

説明

構文

EXGETキー

時間の複雑さ

O(1)

コマンド説明

TairStringキーの値とバージョン番号を取得します。

パラメーター

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

Output

  • 操作が成功すると、キーの値とバージョン番号が返されます。

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

例:

サンプルコマンド:

EXGET foo

サンプル出力:

1) "bar"
2) (integer) 1

EXSETVER

項目

説明

構文

EXSETVERキーバージョン

時間の複雑さ

O(1)

コマンド説明

TairStringキーのバージョン番号を指定します。

パラメーター

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

  • version: 指定するバージョン番号。

Output

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

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

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

例:

サンプルコマンド:

EXSETVER foo 2

サンプル出力:

(integer) 1

EXINCRBY

項目

説明

構文

EXINCRBYキーnum [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

時間の複雑さ

O(1)

コマンド説明

TairStringキーの値を増減します。 numパラメーターの値は、LONG型である必要があります。

パラメーター

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

  • num: キーを増減する値。 この値は整数でなければなりません。

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

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

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

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

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

  • XX: キーが存在する場合にのみ値がキーに書き込まれるように指定します。

  • VER: キーのバージョン番号。

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

      • バージョン番号が一致する場合、キーの値はnum値だけ増加され、バージョン番号は1だけ増加されます。

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

    • キーが存在しない場合、またはキーの現在のバージョン番号が0の場合、指定されたバージョン番号は有効になりません。 この場合、値はnum値だけ増加し、バージョン番号は1に設定されます。

  • ABS: キーの絶対バージョン番号。 このパラメーターを指定すると、キーの現在のバージョン番号に関係なく、値がキーに書き込まれます。 そして、バージョン番号はABS値で上書きされる。

  • MIN: キーの最小値。

  • MAX: キーの最大値。

  • KEPTTL: キーの残りのTTLを継承します。 このパラメーターは、EXPXEXATPXATと一緒に設定することはできません。

    説明

    KEEPTLEXPXなど、キーの有効期限に関連するパラメーターを設定しない場合、キーは期限切れになりません。

Output

  • 操作が成功した場合、キーの更新された値が返されます。

  • MAXまたはMINパラメータが指定され、キーの更新された値がこの値の範囲外である場合、「 (エラー) ERRインクリメントまたはデクリメントはオーバーフローします」というエラーメッセージが返されます。

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

例:

EXSET foo 1コマンドは事前に実行されます。

サンプルコマンド:

EXINCRBY foo 100 MAX 300

サンプル出力:

(integer) 101

EXINCRBYFLOAT

項目

説明

構文

EXINCRBYFLOATキーnum [EX | PX | EXAT | PXAT時間] [NX | XX] [VER | ABSバージョン] [MIN minval] [MAX maxval] [KEPTTL]

時間の複雑さ

O(1)

コマンド説明

TairStringキーの値を増減します。 numパラメーターの値は、DOUBLE型である必要があります。

パラメーター

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

  • num: キーを増減する値。 値は浮動小数点数でなければなりません。

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

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

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

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

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

  • XX: キーが存在する場合にのみ値がキーに書き込まれるように指定します。

  • VER: キーのバージョン番号。

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

      • バージョン番号が一致する場合、キーの値はnum値だけ増加され、バージョン番号は1だけ増加されます。

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

    • キーが存在しない場合、またはキーの現在のバージョン番号が0の場合、指定されたバージョン番号は有効になりません。 この場合、値はnum値だけ増加し、バージョン番号は1に設定されます。

  • ABS: キーの絶対バージョン番号。 このパラメーターを指定すると、キーの現在のバージョン番号に関係なく、値がキーに書き込まれます。 そして、バージョン番号はABS値で上書きされる。

  • MIN: キーの最小値。

  • MAX: キーの最大値。

  • KEPTTL: キーの残りのTTLを継承します。 このパラメーターは、EXPXEXATPXATと一緒に設定することはできません。

    説明

    KEEPTLEXPXなど、キーの有効期限に関連するパラメーターを設定しない場合、キーは期限切れになりません。

Output

  • 操作が成功した場合、キーの更新された値が返されます。

  • MAXまたはMINパラメータが指定され、キーの更新された値がこの値の範囲外である場合、「 (エラー) ERRインクリメントまたはデクリメントはオーバーフローします」というエラーメッセージが返されます。

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

例:

EXSET foo 1コマンドは事前に実行されます。

サンプルコマンド:

EXINCRBYFLOAT foo 10.123

サンプル出力:

(integer) 11.123

EXCAS

項目

説明

構文

EXCASキーの新しい値のバージョン

時間の複雑さ

O(1)

コマンド説明

キーの現在のバージョン番号が指定されたバージョン番号と一致する場合、TairStringキーの値を更新します。 数値が一致しない場合、コマンドはキーの元の値とバージョン番号を返します。

パラメーター

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

  • newvalue: キーの現在のバージョン番号が指定されたバージョン番号と一致する場合に、キーの現在の値を上書きするために使用する新しい値。

  • version: キーの現在のバージョン番号と比較するバージョン番号。

Output

  • 操作が成功した場合、「 ["OK", ", 最新バージョン] 」メッセージが返されます。 メッセージの中央の「」文字は、意味を持たない空の文字列を示します。

  • 操作が失敗した場合、次のエラーメッセージが返されます: ["ERR update version is stale", value, version] 。 valueは、キーの現在の値を示します。 versionは、キーの現在のバージョン番号を示します。

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

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

例:

EXSET foo barコマンドは事前に実行されます。

サンプルコマンド:

EXCAS foo bzz 1

サンプル出力:

1) OK
2)
3) (integer) 2

EXCAD

項目

説明

構文

EXCADキーバージョン

時間の複雑さ

O(1)

コマンド説明

キーの現在のバージョン番号が指定されたバージョン番号と一致すると、TairStringキーを削除します。

パラメーター

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

  • version: キーの現在のバージョン番号と比較するバージョン番号。

Output

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

  • 操作が失敗した場合、値0が返されます。

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

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

例:

EXSET foo barコマンドは事前に実行されます。

サンプルコマンド:

EXCAD foo 1

サンプル出力:

(integer) 1