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

Tair (Redis® OSS-Compatible):exString

最終更新日:Nov 09, 2025

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

概要

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

主な特徴

  • TairString にはバージョン番号が含まれています。

  • TairString では、値を増やすためにこれらのコマンドを実行するときに、INCRBY および INCRBYFLOAT コマンドの出力範囲を制限できます。

このモジュールはオープンソースです。詳細については、「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: キーのバージョン番号。

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

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

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

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

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

  • KEEPTTL: キーの残りの生存時間 (TTL) を継承します。このパラメーターを EXPXEXAT、または PXAT と一緒に設定することはできません。

    説明

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

出力

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

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

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

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

コマンドの例:

EXSET foo bar EX 10 NX ABS 100

出力の例:

OK

EXGET

項目

説明

構文

EXGET key

時間計算量

O(1)

コマンドの説明

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

パラメーター

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

出力

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

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

コマンドの例:

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: キーのバージョン番号。

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

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

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

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

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

  • MIN: キーの最小値。

  • MAX: キーの最大値。

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

    説明

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

出力

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

  • MAX または MIN パラメーターが指定されていて、キーの更新された値がこの値の範囲外である場合、「(error) ERR increment or decrement would overflow」エラーメッセージが返されます。

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

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: キーのバージョン番号。

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

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

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

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

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

  • MIN: キーの最小値。

  • MAX: キーの最大値。

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

    説明

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

出力

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

  • MAX または MIN パラメーターが指定されていて、キーの更新された値がこの値の範囲外である場合、「(error) ERR increment or decrement would overflow」エラーメッセージが返されます。

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

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

コマンドの例:

EXINCRBYFLOAT foo 10.123

出力の例:

(integer) 11.123

EXCAS

項目

説明

構文

EXCAS key newvalue version

時間計算量

O(1)

コマンドの説明

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

パラメーター

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

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

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

出力

  • 操作が成功した場合、「"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 キーを削除します。

パラメーター

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

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

出力

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

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

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

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

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

コマンドの例:

EXCAD foo 1

出力の例:

(integer) 1