TairString (exString) は、バージョン番号を含む文字列です。このトピックでは、TairString データ構造でサポートされるコマンドについて説明します。
概要
ネイティブの Redis 文字列は、キーと値のペア構造を使用します。TairString には、楽観的ロックなどのシナリオをサポートするために、キー、値、およびバージョン番号が含まれています。ネイティブの Redis 文字列では、INCRBY および INCRBYFLOAT コマンドを使用して文字列の値を増減させます。TairString では、これらのコマンドによって返される出力の範囲を制限できます。出力が指定された範囲外の場合、エラーメッセージが返されます。
主な特徴
このモジュールはオープンソースです。詳細については、「GitHub」をご参照ください。
前提条件
インスタンスは、マイナーバージョンが 1.2.3 以降の Tair DRAM ベースまたは永続メモリ最適化インスタンスです。
説明 最新のマイナーバージョンは、より多くの機能と高い安定性を提供します。インスタンスを最新のマイナーバージョンに更新することを推奨します。詳細については、「インスタンスのマイナーバージョンを更新する」をご参照ください。インスタンスがクラスターインスタンスまたは読み書き分離インスタンスである場合は、すべてのコマンドが期待どおりに実行されるように、インスタンス内のプロキシノードを最新のマイナーバージョンに更新することを推奨します。
注意事項
管理したい TairString データは、Tair インスタンスに保存されます。
説明 Tair インスタンス上で、ネイティブの Redis 文字列と TairString を同時に管理できます。ただし、ネイティブの Redis 文字列は、このトピックで説明されているコマンドをサポートしていません。
サポートされているコマンド
表 1. TairString コマンド
コマンド | 構文 | 説明 |
EXSET | EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
| キーが存在しない場合は TairString キーを作成し、キーに値を書き込みます。キーが既に存在する場合、コマンドはキーの値を上書きします。 |
EXGET | EXGET key
| TairString キーの値とバージョン番号を取得します。 |
EXSETVER | EXSETVER key version
| TairString キーのバージョン番号を指定します。 |
EXINCRBY | EXINCRBY key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
| TairString キーの値を増減させます。num パラメーターの値は LONG 型である必要があります。 |
EXINCRBYFLOAT | EXINCRBYFLOAT key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
| TairString キーの値を増減させます。num パラメーターの値は DOUBLE 型である必要があります。 |
EXCAS | EXCAS key newvalue version
| キーの現在のバージョン番号が指定されたバージョン番号と一致する場合に、指定された TairString キーの値を更新します。番号が一致しない場合、コマンドはキーの元の値とバージョン番号を返します。 |
EXCAD | EXCAD key version
| キーの現在のバージョン番号が指定されたものと一致する場合に TairString キーを削除します。 |
DEL | DEL key [key ...]
| 1 つ以上の TairString キーを削除します。 |
説明 次の一覧は、このトピックで使用されるコマンド構文の規則について説明しています。
大文字のキーワード: コマンドのキーワードを示します。
イタリック体のテキスト: 変数を示します。
[options]: 囲まれたパラメーターがオプションであることを示します。角括弧で囲まれていないパラメーターは指定する必要があります。
A|B: 縦棒 (|) で区切られたパラメーターが相互排他であることを示します。パラメーターのいずれか 1 つのみを指定できます。
...: この記号の前のパラメーターを繰り返し指定できることを示します。
EXSET
項目 | 説明 |
構文 | EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
|
時間計算量
| O(1) |
コマンドの説明 | キーが存在しない場合は TairString キーを作成し、キーに値を書き込みます。キーが既に存在する場合、コマンドはキーの値を上書きします。 |
パラメーター | key: このコマンドを実行して管理するキー。 value: キーに書き込む値。 EX: キーの相対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 EXAT: キーの絶対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PX: キーの相対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PXAT: キーの絶対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 NX: キーが存在しない場合にのみキーに値が書き込まれるように指定します。 XX: キーが存在する場合にのみキーに値が書き込まれるように指定します。 VER: キーのバージョン番号。 ABS: キーの絶対バージョン番号。このパラメーターを指定すると、キーの現在のバージョン番号に関係なく値がキーに書き込まれます。その後、バージョン番号は ABS 値で上書きされます。 KEEPTTL: キーの残りの生存時間 (TTL) を継承します。このパラメーターを EX、PX、EXAT、または PXAT と一緒に設定することはできません。
説明 キーの有効期限に関連するパラメーター (KEEPTTL、EX、PX など) を設定しない場合、キーは有効期限切れになりません。
|
出力 | |
例 | コマンドの例: EXSET foo bar EX 10 NX ABS 100
出力の例: OK
|
EXGET
項目 | 説明 |
構文 | EXGET key
|
時間計算量 | O(1) |
コマンドの説明 | TairString キーの値とバージョン番号を取得します。 |
パラメーター | |
出力 | |
例 | コマンドの例: EXGET foo
出力の例:1) "bar"
2) (integer) 1 1) "bar"
2) (integer) 1
|
EXSETVER
項目 | 説明 |
構文 | EXSETVER key version
|
時間計算量 | O(1) |
コマンドの説明 | TairString キーのバージョン番号を指定します。 |
パラメーター | key: このコマンドを実行して管理するキー。 version: 指定するバージョン番号。
|
出力 | 操作が成功した場合、値 1 が返されます。 キーが存在しない場合、値 0 が返されます。 それ以外の場合、エラーメッセージが返されます。
|
例 | コマンドの例: EXSETVER foo 2
出力の例: (integer) 1
|
EXINCRBY
項目 | 説明 |
構文 | EXINCRBY key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
|
時間計算量 | O(1) |
コマンドの説明 | TairString キーの値を増減させます。num パラメーターの値は LONG 型である必要があります。 |
パラメーター | key: このコマンドを実行して管理するキー。 num: キーを増減させる値。この値は整数である必要があります。 EX: キーの相対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 EXAT: キーの絶対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PX: キーの相対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PXAT: キーの絶対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 NX: キーが存在しない場合にのみキーに値が書き込まれるように指定します。 XX: キーが存在する場合にのみキーに値が書き込まれるように指定します。 VER: キーのバージョン番号。 ABS: キーの絶対バージョン番号。このパラメーターを指定すると、キーの現在のバージョン番号に関係なく値がキーに書き込まれます。その後、バージョン番号は ABS 値で上書きされます。 MIN: キーの最小値。 MAX: キーの最大値。 KEEPTTL: キーの残りの TTL を継承します。このパラメーターを EX、PX、EXAT、または PXAT と一緒に設定することはできません。
説明 キーの有効期限に関連するパラメーター (KEEPTTL、EX、PX など) を設定しない場合、キーは有効期限切れになりません。
|
出力 | |
例 | EXSET foo 1 コマンドが事前に実行されます。
コマンドの例: EXINCRBY foo 100 MAX 300
出力の例: (integer) 101
|
EXINCRBYFLOAT
項目 | 説明 |
構文 | EXINCRBYFLOAT key num [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [MIN minval] [MAX maxval] [KEEPTTL]
|
時間計算量 | O(1) |
コマンドの説明 | TairString キーの値を増減させます。num パラメーターの値は DOUBLE 型である必要があります。 |
パラメーター | key: このコマンドを実行して管理するキー。 num: キーを増減させる値。値は浮動小数点数である必要があります。 EX: キーの相対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 EXAT: キーの絶対的な有効期限。単位: 秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PX: キーの相対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 PXAT: キーの絶対的な有効期限。単位: ミリ秒。値 0 は、キーがすぐに有効期限切れになることを示します。このパラメーターが指定されていない場合、キーは有効期限切れになりません。 NX: キーが存在しない場合にのみキーに値が書き込まれるように指定します。 XX: キーが存在する場合にのみキーに値が書き込まれるように指定します。 VER: キーのバージョン番号。 ABS: キーの絶対バージョン番号。このパラメーターを指定すると、キーの現在のバージョン番号に関係なく値がキーに書き込まれます。その後、バージョン番号は ABS 値で上書きされます。 MIN: キーの最小値。 MAX: キーの最大値。 KEEPTTL: キーの残りの TTL を継承します。このパラメーターを EX、PX、EXAT、または PXAT と一緒に設定することはできません。
説明 キーの有効期限に関連するパラメーター (KEEPTTL、EX、PX など) を設定しない場合、キーは有効期限切れになりません。
|
出力 | |
例 | EXSET foo 1 コマンドが事前に実行されます。
コマンドの例: EXINCRBYFLOAT foo 10.123
出力の例: (integer) 11.123
|
EXCAS
項目 | 説明 |
構文 | EXCAS key newvalue version
|
時間計算量 | O(1) |
コマンドの説明 | キーの現在のバージョン番号が指定されたバージョン番号と一致する場合に、指定された TairString キーの値を更新します。番号が一致しない場合、コマンドはキーの元の値とバージョン番号を返します。 |
パラメーター | |
出力 | 操作が成功した場合、「"OK", "",latest version」メッセージが返されます。メッセージの中央にある "" 文字は、意味を持たない空の文字列を示します。 操作が失敗した場合、次のエラーメッセージが返されます: ["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 key version
|
時間計算量 | O(1) |
コマンドの説明 | キーの現在のバージョン番号が指定されたものと一致する場合に TairString キーを削除します。 |
パラメーター | |
出力 | 操作が成功した場合、値 1 が返されます。 操作が失敗した場合、値 0 が返されます。 キーが存在しない場合、値 -1 が返されます。 それ以外の場合、エラーメッセージが返されます。
|
例 | EXSET foo bar コマンドが事前に実行されます。
コマンドの例: EXCAD foo 1
出力の例: (integer) 1
|