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

Tair (Redis® OSS-Compatible):TS

最終更新日:Nov 09, 2025

TairTS は、Redis モジュール上に開発された時系列データ構造です。このデータ構造は、低レイテンシーかつ高同時実行性のインメモリ読み書きアクセスを提供し、高速なフィルタリングと集約クエリをサポートし、ストレージとコンピューティングの両方の機能を提供します。TairTS は、時系列データの処理を簡素化し、パフォーマンスを大幅に向上させます。

TairTS の概要

RedisTimeSeries と比較して、TairTS はより豊富な機能セットを提供します:

  • pkey を使用した複数タイムラインの集約クエリ。Pkey には追加のハッシュレイヤーがあります。

    たとえば、foo pkey に、メトリック名とデバイス ID にちなんで名付けられた複数の skey (temperature:1、pressure:1、distance:1 など) を作成できます。その後、TairTS が提供する EXTS.S.MRANGE コマンドを実行して、デバイス ID が 1 の skey などのカスタムモニタリングデータを取得できます。RedisTimeSeries を使用して類似機能を実装する場合、ビジネスロジックコードに多くの集約クエリを挿入する必要があります。

    図 1. TairTS と RedisTimeSeries の比較TairTS数据结构图

    以下に TairTS データの構造を説明します:

    • Pkey: タイムラインのセットを示す TairTS データの一部。pkey は複数の skey で構成されます。

    • Skey: タイムライン。skey は固定容量を持つ複数のチャンクで構成されます。各 skey には 1 つ以上の異なるラベルをアタッチできます。その後、skey はラベルでフィルターできます。

    • Chunk: データチャンク。チャンクは複数のデータポイントを格納できます。

      • 各チャンクの容量はカスタマイズ可能です。圧縮が有効でない場合、チャンクは最大 256 のデータポイントを格納できます。ただし、圧縮が有効な場合、チャンクは 256 を超えるデータポイントを格納できます。

      • チャンクは最小の有効期限切れ単位です。チャンク内のすべてのデータポイントが有効期限切れになると、チャンクは削除されます。

    • Datapoint: タイムスタンプと DOUBLE 型の値を含む時系列データの一部。

  • ダウンサンプリング、属性フィルタリング、バッチクエリ、複数の数値関数の使用などのシナリオでの集約クエリ。この機能は、バッチクエリと集約を単一のコマンドに統合して、ネットワークの相互作用を減らし、1 桁ミリ秒の応答時間を提供します。

  • 過去の時系列データの更新と蓄積。

  • タイムラインレベルの TTL 設定をサポートし、各タイムラインがタイムウィンドウに従って自動的にスクロールすることを保証します。

  • 効率的な Gorilla 圧縮アルゴリズムと特定のストレージにより、コストを大幅に削減します。

典型的なシナリオ

  • モニタリングデータのストレージとコンピューティング

  • タイムウィンドウに基づくデータ分析

  • IoT のデータ分析と処理

  • ホットニュースのキャッシング

  • アプリケーションパフォーマンス管理 (APM) のための秒単位のモニタリング

  • スロットリングシナリオでのリスクコントロール

ベストプラクティス

TairTS を使用して秒単位のモニタリングを実装する

準備

管理するインスタンスは、Tair DRAM ベースのインスタンスです。

インスタンスが Redis 5.0 と互換性のある DRAM ベースのインスタンスである場合、インスタンスのマイナーバージョンは 1.7.20 以降である必要があります。

説明

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

使用上の注意

  • 管理する TairTS データは Tair インスタンスに格納されます。

  • TairTS は、リアルタイムで高同時実行性の書き込みとクエリをサポートしますが、ストレージ容量は限られています。期限切れのデータがタイムリーに削除されるように、TairTS データに TTL を指定することをお勧めします。

重要

破壊的変更:

2024 年 7 月 22 日に、Redis 6.0 と互換性のある Tair DRAM ベースのインスタンスのバージョン 24.7.0.0 がリリースされました。このバージョンでは、ts-auto-del-empty-skey-enable という新しいパラメーターが導入され、デフォルトで yes に設定されています。これは、skey 内のすべてのデータポイントが期限切れになると、skey が自動的に削除されることを示します。ただし、Redis 6.0 と互換性のある Tair DRAM ベースのインスタンスの 24.7.0.0 より前のバージョンでは、データポイントが期限切れになった skey はデフォルトでは削除されません。

Redis 6.0 と互換性のある Tair DRAM ベースのインスタンスで TairTS を使用する前に、インスタンスをバージョン 24.7.0.0 以降にアップグレードし、ts-auto-del-empty-skey-enable パラメーター設定を確認して手動で調整することをお勧めします。これにより、デフォルトの動作の変更によるビジネスへの潜在的な影響を防ぐことができます。

コマンド一覧

表 1. TairTS コマンド

タイプ

コマンド

構文

説明

基本的な書き込み操作

EXTS.P.CREATE

EXTS.P.CREATE Pkey

TairTS pkey を作成します。同じ名前の pkey が既に存在する場合、pkey は作成できません。

EXTS.S.CREATE

EXTS.S.CREATE Pkey Skey [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 label2 val2 ...]

指定された pkey に skey を作成します。pkey が存在しない場合は、自動的に作成されます。同じ名前の skey が既に存在する場合、skey は作成できません。

説明

有効期限や圧縮を有効にするかどうかなど、skey のパラメーターを指定できます。

EXTS.S.ALTER

EXTS.S.ALTER Pkey Skey [DATA_ET time]

指定された skey のメタデータを変更します。DATA_ET 時間値のみ変更できます。

EXTS.S.ADD

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

データポイントを skey に挿入します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

EXTS.S.MADD

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

データポイントを pkey の複数の skey に挿入します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

EXTS.S.INCRBY

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

データポイントを skey に挿入します。挿入するデータポイントが正の値を持つ場合、挿入された値は skey に存在する最後のデータポイントの値に加算されます。データポイントが負の値を持つ場合、挿入された値は skey に存在する最後のデータポイントの値から減算されます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

EXTS.S.MINCRBY

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

データポイントを pkey の複数の skey に挿入します。挿入するデータポイントが正の値を持つ場合、挿入された値は各 skey に存在する最後のデータポイントの値に加算されます。データポイントが負の値を持つ場合、挿入された値は各 skey に存在する最後のデータポイントの値から減算されます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

EXTS.S.DEL

EXTS.S.DEL Pkey Skey

pkey から skey と skey 内のすべてのデータポイントを削除します。

基本的な読み取り操作

EXTS.S.GET

EXTS.S.GET Pkey Skey

指定された skey 内の最新のデータポイントの値をクエリします。

EXTS.S.INFO

EXTS.S.INFO Pkey Skey

指定された skey のメタデータをクエリします。メタデータには、データポイントの数、最新のデータポイントのタイムスタンプと値、および skey のラベル情報が含まれます。

EXTS.S.QUERYINDEX

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

pkey 内で指定されたフィルター条件を満たす skey をクエリします。

集約操作

EXTS.S.RANGE

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

指定された時間範囲内に skey に存在するデータポイントの数をクエリします。時間範囲は閉区間です。

EXTS.S.MRANGE

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

指定された時間範囲内に複数の skey で指定されたフィルター条件を満たすデータポイントの数をクエリします。時間範囲は閉区間です。

EXTS.P.RANGE

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] FILTER filter1 [filter2 ...]

指定されたフィルター条件を満たす pkey 内のデータポイントを集約します。集約のために 1 つ以上の skey を指定した場合、skey はまず EXTS.S.MRANGE コマンドが使用されたときと同じ方法で集約されます。その後、skey の集約結果に基づいて pkey が集約されます。

同時書き込み操作

EXTS.S.RAW_MODIFY

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

指定された skey 内のデータポイントの値を変更します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

EXTS.S.RAW_MMODIFY

EXTS.S.RAW_MMODIFY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

指定された skey 内の複数のデータポイントの値を一度に変更します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

EXTS.S.RAW_INCRBY

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

指定された skey 内のデータポイントの値を変更します。値を変更するための増分または減分を指定できます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

EXTS.S.RAW_MINCRBY

EXTS.S.RAW_MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

指定された skey 内の複数のデータポイントの値を一度に変更します。値を変更するための増分または減分を指定できます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

汎用操作

DEL

DEL key [key ...]

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

説明

次の一覧は、このトピックで使用されるコマンド構文の規則について説明しています:

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

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

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

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

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

EXTS.P.CREATE

項目

説明

構文

EXTS.P.CREATE Pkey

時間計算量

O(1)

コマンドの説明

TairTS pkey を作成します。同じ名前の pkey が既に存在する場合、pkey は作成できません。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

出力

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

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

コマンドの例:

EXTS.P.CREATE foo

出力の例:

OK

EXTS.S.CREATE

項目

説明

構文

EXTS.S.CREATE Pkey Skey [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 label2 val2 ...]

時間計算量

O(1)

コマンドの説明

指定された pkey に skey を作成します。pkey が存在しない場合は、自動的に作成されます。同じ名前の skey が既に存在する場合、skey は作成できません。

説明

有効期限や圧縮を有効にするかどうかなど、skey のパラメーターを指定できます。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: データポイントを格納するために使用される単一チャンクのサイズ (16 バイト単位)。CHUNK_SIZE のデフォルト値は 256 です。これは、システムがデータポイントを格納するためにチャンクに 4 KB のメモリを割り当てることを示します (16 バイトに 256 を乗じて計算)。現在のチャンクがストレージ容量に達すると、システムは別のチャンクを作成します。CHUNK_SIZE の有効値は 1 から 256 です。

    説明

    たとえば、CHUNK_SIZE が 256 に設定されているとします。skey の圧縮が有効でない場合、1 つのチャンクは 256 のデータポイントを格納できます。ただし、圧縮が有効な場合、1 つのチャンクは 256 を超えるデータポイントを格納できますが、正確な数は特定のデータの圧縮効果によって異なります。

    メモリ使用量を最適化し、読み書き効率のバランスを取るために、次のガイドラインに基づいて CHUNK_SIZE を設定することをお勧めします:

    • 特定の skey の平均データポイント数が 5,000 を超える場合は、CHUNK_SIZE を 256 (デフォルト値) に設定します。より大きなチャンクを使用すると、チャンクの総数を減らすことができ、その結果、メタデータの管理オーバーヘッドが減少します。

    • 特定の skey の平均データポイント数が 5,000 未満の場合は、CHUNK_SIZE を平均データポイント数を 20 で割った値に設定します。たとえば、skey の平均データポイント数が 1,000 の場合、CHUNK_SIZE を 50 に設定できます。この設定により、小範囲のクエリ中に解凍されるデータが少なくなり、パフォーマンスが向上する可能性があります。ただし、この場合に大量のデータが書き込まれると、多くのチャンクが作成されるため、パフォーマンスが低下する可能性があります。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.CREATE foo temperature DATA_ET 10000000 LABELS sensor_id 1

出力の例:

OK

EXTS.S.ALTER

項目

説明

構文

EXTS.S.ALTER Pkey Skey [DATA_ET time]

時間計算量

O(1)

コマンドの説明

指定された skey のメタデータを変更します。DATA_ET 時間値のみ変更できます。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

出力

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

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

コマンドの例:

EXTS.S.ALTER foo temperature DATA_ET 100000

出力の例:

OK

EXTS.S.ADD

項目

説明

構文

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(1)

コマンドの説明

データポイントを skey に挿入します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • ts: データポイントの UNIX タイムスタンプ。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.ADD foo temperature * 30.5 DATA_ET 1000000 LABELS sensor_id 1

出力の例:

OK

EXTS.S.MADD

項目

説明

構文

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(n)。n は skey の数を示します。

コマンドの説明

データポイントを pkey の複数の skey に挿入します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • keynumber: データレコードの数を指定します。

  • Skey: skey の名前。

  • ts: データポイントの UNIX タイムスタンプ。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.MADD foo 3 temperature * 30.2 pressure * 2.05 distance * 0.5

出力例:

1) OK
2) OK
3) OK

EXTS.S.INCRBY

項目

説明

構文

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(1)

コマンドの説明

データポイントを skey に挿入します。挿入するデータポイントが正の値を持つ場合、挿入された値は skey に存在する最後のデータポイントの値に加算されます。データポイントが負の値を持つ場合、挿入された値は skey に存在する最後のデータポイントの値から減算されます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • ts: データポイントの UNIX タイムスタンプ。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値に追加する値。値は負の値にすることができます。この場合、値はデータポイントの値から減算されます。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

事前に EXTS.S.ADD foo temperature 1644310456023 30.0 コマンドを実行します。

コマンドの例:

EXTS.S.INCRBY foo temperature 1644372093031 2

出力の例:

OK

この時点で EXTS.S.GET foo temperature コマンドを実行すると、次の出力が返されます:

1) (integer) 1644372093031
2) "32"

EXTS.S.MINCRBY

項目

説明

構文

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(n)。n は skey の数を示します。

コマンドの説明

データポイントを pkey の複数の skey に挿入します。挿入するデータポイントが正の値を持つ場合、挿入された値は各 skey に存在する最後のデータポイントの値に加算されます。データポイントが負の値を持つ場合、挿入された値は各 skey に存在する最後のデータポイントの値から減算されます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

オプション

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • keynumber: skey の数。

  • Skey: skey の名前。

  • ts: データポイントの UNIX タイムスタンプ。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。

  • value: データポイントの値に追加する値。値は負の値にすることができます。この場合、値はデータポイントの値から減算されます。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.MINCRBY foo 3 temperature * 0.2 pressure * -0.1 distance * 0.0

出力の例:

1) OK
2) OK
3) OK

EXTS.S.DEL

項目

説明

構文

EXTS.S.DEL Pkey Skey

時間計算量

O(1)

コマンドの説明

pkey から skey と skey 内のすべてのデータポイントを削除します。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

出力

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

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

コマンドの例:

EXTS.S.DEL foo temperature

出力の例:

OK

EXTS.S.GET

項目

説明

構文

EXTS.S.GET Pkey Skey

時間計算量

O(1)

コマンドの説明

指定された skey 内の最新のデータポイントの値をクエリします。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

出力

  • 操作が成功した場合、データポイントの値が返されます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.S.GET foo temperature

出力の例:

1) (integer) 1644372730150
2) "32.2"

EXTS.S.INFO

項目

説明

構文

EXTS.S.INFO Pkey Skey

時間計算量

O(1)

コマンドの説明

指定された skey のメタデータをクエリします。メタデータには、データポイントの数、最新のデータポイントのタイムスタンプと値、および skey のラベル情報が含まれます。

オプション

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

出力

  • 操作が成功した場合、skey のメタデータが返されます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.S.INFO foo temperature

出力の例:

 1) totalDataPoints            // データポイントの数。
 2) (integer) 1
 3) maxDataPoints              // skey に格納できるデータポイントの最大数。デフォルト値は 0 で、上限がないことを示します。
 4) (integer) 0
 5) maxDataPointsPerChunk      // チャンクに格納できるデータポイントの数。
 6) (integer) 32
 7) dataPointsExpireTime       // skey の相対的な有効期限。単位: ミリ秒。値 0 は、skey が期限切れにならないことを示します。
 8) (integer) 0
 9) lastTimestamp              // 最新のデータポイントのタイムスタンプ。
10) (integer) 1644389400996
11) chunkCount                 // skey 内のチャンクの数。
12) (integer) 1
13) lastValue                  // 最新のデータポイントの値。
14) (integer) 28
15) labels                     // skey のラベル情報。
16) 1) 1) "sensor_id"
       2) "1"

EXTS.S.QUERYINDEX

項目

説明

構文

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

時間計算量

O(n)。n はフィルター条件に関与するセットの最大数を示します。

コマンドの説明

pkey 内で指定されたフィルター条件を満たす skey をクエリします。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • filter: フィルター条件。ラベルで skey をフィルターできます。詳細については、「インデックスフィルタリング構文」をご参照ください。

    説明

    フィルター条件を指定する場合、EQ、CONTAINS、および LIST_MATCH ロジックのいずれかを使用する必要があります。そうしないと、フィルタークエリを実行できません。

出力

  • 操作が成功した場合、指定されたフィルター条件を満たす skey が返されます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.S.QUERYINDEX foo sensor_id=1

出力の例:

1) "temperature"

EXTS.S.RANGE

項目

説明

構文

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

時間計算量

O(n)。n はデータポイントが属するチャンクの数を示します。

コマンドの説明

指定された時間範囲内に skey に存在するデータポイントの数をクエリします。時間範囲は閉区間です。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • fromTs: クエリする時間範囲の開始。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。

  • toTs: クエリする時間範囲の終了。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。この値が fromTs 値と等しい場合、クエリには特定の時点が使用されます。

  • MAXCOUNT: 返すデータポイントの数。このパラメーターはデフォルトで空のままです。Tair インスタンスの上限は 1,000,000 です。

  • AGGREGATION:

    • aggregationType: MAXAVGSUM などの集約タイプ。詳細については、「集約構文」をご参照ください。

    • timeBucket: データを集約するために使用されるタイムバケット。単位: ミリ秒。下限は 1,000 です。

      ApsaraDB for Redis Enhanced Edition (Tair) では、指定された時間範囲内に skey または pkey に存在するデータが集約され、結果として返されます。結果を返す時点は、コレクション間隔の開始です。

    たとえば、AGGREGATION AVG 5000 は、指定された時間範囲内で 5,000 ミリ秒続く各タイムバケットに存在するデータポイントの平均数を返します。

出力

  • 操作が成功した場合、指定されたフィルター条件を満たすデータポイントの数が返されます。コマンドで集約が指定されている場合、集約結果が返されます。

    説明

    追加のトークン値が返されます。値 0 は、指定されたフィルター条件を満たすすべてのデータポイントが表示されることを示します。値 1 は、指定されたフィルター条件を満たす特定のデータポイントが表示されないことを示します。トークン値に基づいて結果から最新のデータポイントを取得し、最新のデータポイントのタイムスタンプを次のクエリの時間範囲の開始として使用して、バッチ集約を実装できます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.S.RANGE foo test 1644459031662 * AGGREGATION AVG 10000 MAXCOUNT 2
// このコマンドは、指定された時間範囲内で 10,000 ミリ秒続く各タイムバケットに存在するデータポイントの平均数を取得し、2 つのデータエントリを返します。

出力の例:

1) 1) 1) (integer) 1644459730000
      2) "20.6"
   2) 1) (integer) 1644459790000
      2) "21.2"
2) (integer) 1                    // 値 0 は、指定されたフィルター条件を満たすすべてのデータポイントが表示されることを示します。値 1 は、指定されたフィルター条件を満たす特定のデータポイントが表示されないことを示します。

EXTS.S.MRANGE

項目

説明

構文

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

時間計算量

O(n)。n はデータポイントが属するチャンクの数を示します。

コマンドの説明

指定された時間範囲内に複数の skey で指定されたフィルター条件を満たすデータポイントの数をクエリします。時間範囲は閉区間です。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • fromTs: クエリする時間範囲の開始。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。

  • toTs: クエリする時間範囲の終了。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。この値が fromTs 値と等しい場合、クエリには特定の時点が使用されます。

  • MAXCOUNT: skey で返すデータポイントの数。このパラメーターはデフォルトで空のままです。Tair インスタンスの上限は 1,000,000 です。

  • AGGREGATION:

    • aggregationType: MAXAVGSUM などの集約タイプ。詳細については、「集約構文」をご参照ください。

    • timeBucket: データを集約するために使用されるタイムバケット。単位: ミリ秒。下限は 1,000 です。

      Tair は、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。返される時点は、各タイムバケットの開始です。

  • WITHLABELS: 出力にラベル情報を含めるかどうかを指定します。このパラメーターはデフォルトで空のままです。これは、ラベル情報が表示されないことを示します。

  • filter: フィルター条件。ラベルで skey をフィルターできます。詳細については、「インデックスフィルタリング構文」をご参照ください。

    説明

    フィルター条件を指定する場合、EQ、CONTAINS、および LIST_MATCH ロジックのいずれかを使用する必要があります。そうしないと、フィルタークエリを実行できません。

出力

  • 操作が成功した場合、指定されたフィルター条件を満たす skey が返されます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.S.MRANGE foo 1644451031662 * AGGREGATION MAX 10000 WITHLABELS FILTER sensor_id=1

出力の例:

1) 1) "temperature"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644481000000
         2) "30"
   4) (integer) 0
2) 1) "test"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644459730000
         2) "20"
      2) 1) (integer) 1644459790000
         2) "20"
      3) 1) (integer) 1644460620000
         2) "29"
   4) (integer) 0

EXTS.P.RANGE

項目

説明

構文

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] FILTER filter1 [filter2 ...]

時間計算量

O(n)。n はデータポイントが属するチャンクの数を示します。

コマンドの説明

指定されたフィルター条件を満たす pkey 内のデータポイントを集約します。集約のために 1 つ以上の skey を指定した場合、skey はまず EXTS.S.MRANGE コマンドが使用されたときと同じ方法で集約されます。その後、skey の集約結果に基づいて pkey が集約されます。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • fromTs: クエリする時間範囲の開始。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。

  • toTs: クエリする時間範囲の終了。この値は UNIX タイムスタンプである必要があります。単位: ミリ秒。* の値を使用して、現在の時刻のタイムスタンプを指定できます。この値が fromTs 値と等しい場合、クエリには特定の時点が使用されます。

  • pkeyAggregationType: pkey の集約タイプ。詳細については、「集約構文」をご参照ください。

  • pkeyTimeBucket: pkey 内のデータを集約するために使用されるタイムバケット。単位: ミリ秒。下限は 1,000 です。

    Tair は、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。返される時点は、各タイムバケットの開始です。

  • MAXCOUNT: skey で返すデータポイントの数。このパラメーターはデフォルトで空のままです。Tair インスタンスの上限は 1,000,000 です。

  • AGGREGATION:

    • aggregationType: skey の集約タイプ。詳細については、「集約構文」をご参照ください。

    • timeBucket: skey 内のデータを集約するために使用されるタイムバケット。単位: ミリ秒。下限は 1,000 です。

      Tair は、複数のタイムバケットに存在するデータを集約し、単一の結果を返します。返される時点は、各タイムバケットの開始です。

  • filter: フィルター条件。ラベルで skey をフィルターできます。詳細については、「インデックスフィルタリング構文」をご参照ください。

    説明

    フィルター条件を指定する場合、EQ、CONTAINS、および LIST_MATCH ロジックのいずれかを使用する必要があります。そうしないと、フィルタークエリを実行できません。

出力

  • 操作が成功した場合、集約結果が返されます。

  • pkey または skey が存在しない場合、nil が返されます。

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

コマンドの例:

EXTS.P.RANGE foo 1644451031662 * SUM 500000 AGGREGATION SUM 10000 FILTER sensor_id=1

出力の例:

1) 1) 1) (integer) 1644459500000
      2) "40"
   2) 1) (integer) 1644460500000
      2) "29"
   3) 1) (integer) 1644481000000
      2) "30"
2) (integer) 0

EXTS.S.RAW_MODIFY

項目

説明

構文

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(1)

コマンドの説明

指定された skey 内のデータポイントの値を変更します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • ts: 値を更新するデータポイントの UNIX タイムスタンプ。単位: ミリ秒。

  • value: 更新するデータポイントの値。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.RAW_MODIFY foo temperature 1644310456023 31.5

出力の例:

OK

EXTS.S.RAW_MMODIFY

項目

説明

構文

EXTS.S.RAW_MMODIFY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(n)。n は skey の数を示します。

コマンドの説明

指定された skey 内の複数のデータポイントの値を一度に変更します。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey が自動的に作成された場合にのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • keynumber: データエントリの数を指定します。

  • Skey: skey の名前。

  • ts: 値を更新するデータポイントの UNIX タイムスタンプ。単位: ミリ秒。

  • value: 更新するデータポイントの値。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

出力の例:

1) OK
2) OK
3) OK

EXTS.S.RAW_INCRBY

項目

説明

構文

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(1)

コマンドの説明

指定された skey 内のデータポイントの値を変更します。値を変更するための増分または減分を指定できます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。デフォルトの初期値は 0 です。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • Skey: skey の名前。

  • ts: 値を更新するデータポイントの UNIX タイムスタンプ。単位: ミリ秒。

  • value: データポイントの値に追加する値。値は負の値にすることができます。この場合、値はデータポイントの値から減算されます。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

事前に EXTS.S.ADD foo temperature 1644310456 30.0 コマンドを実行します。

コマンドの例:

EXTS.S.RAW_INCRBY foo temperature 1644310456 3.3

出力の例:

OK

この時点で EXTS.S.GET foo temperature コマンドを実行すると、次の出力が返されます:

1) (integer) 1644310456
2) "33.3"

EXTS.S.RAW_MINCRBY

項目

説明

構文

EXTS.S.RAW_MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間計算量

O(n)。n はデータポイントの数を示します。

コマンドの説明

指定された skey 内の複数のデータポイントの値を一度に変更します。値を変更するための増分または減分を指定できます。pkey または skey が存在しない場合、pkey または skey は自動的に作成されます。有効期限や圧縮を有効にするかどうかなど、skey のパラメーターは、skey がまだ存在しない場合に自動的に作成されたときにのみ有効になります。

パラメーター

  • Pkey: このコマンドを実行して管理する pkey の名前。

  • keynumber: データエントリの数を指定します。

  • Skey: skey の名前。

  • ts: 値を更新するデータポイントの UNIX タイムスタンプ。単位: ミリ秒。

  • value: データポイントの値に追加する値。値は負の値にすることができます。この場合、値はデータポイントの値から減算されます。値は倍精度浮動小数点数である必要があります。

  • DATA_ET time: データポイントの相対的な有効期限。単位: ミリ秒。このパラメーターはデフォルトで空のままです。これは、データポイントが期限切れにならないことを示します。

  • CHUNK_SIZE: 単一チャンクのサイズ (16 バイト単位)。デフォルト値: 256。有効値: 1 から 256。詳細については、「EXTS.S.CREATE」をご参照ください。

  • UNCOMPRESSED: skey の圧縮が無効になっていることを指定します。このパラメーターはデフォルトで空のままです。これは、skey の圧縮が有効になっていることを示します。

  • LABELS: skey のラベル。1 つ以上のラベルと値のペアを指定できます。例: LABELS sensor_id 1

出力

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

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

コマンドの例:

EXTS.S.RAW_MINCRBY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

出力の例:

1) OK
2) OK
3) OK

インデックスフィルタリング構文

Skey はラベルでフィルターできます。フィルター条件には次の構文が使用されます。

説明

フィルター条件を指定する場合、次のコマンドの 1 つ以上を使用でき、EQ、CONTAINS、および LIST_MATCH ロジックのいずれかを使用する必要があります。

フィルターコマンド

説明

ロジック

L = V

ラベル L は V と等しい。

EQ (等しい)

L !=

ラベル L は NULL ではありません。これは、skey にラベル L が含まれていることを示します。

CONTAINS

L = (v1,v2,...)

ラベル L は v1、v2、または別の値です。

LIST_TMATCH

L != V

ラベル L は V と等しくありません。

NOEQ (等しい)

L =

ラベル L は NULL です。これは、skey にラベル L が含まれていないことを示します。

NOCONTAINS

L != (v1,v2,...)

ラベル L の値は、v1 や v2 などのリスト内のどの値とも一致しません。

LIST_NOTMATCH

集約構文

集約操作では、timeBucket パラメーターで指定された間隔に存在するデータが集約されます。次の集約タイプがサポートされています。

  • MAX: 最大値を返します。

  • MIN: 最小値を返します。

  • AVG: 平均値を返します。

  • SUM: すべての値の合計を返します。

  • FIRST: 最初の値を返します。

  • LAST: 最後の値を返します。

  • RANGE: 最小値から最大値までの範囲を返します。

  • COUNT: 値の数を返します。

  • STD.P: 母分散を返します。

  • STD.S: 標本分散を返します。

  • VAR.P: 母集団標準偏差を返します。

  • VAR.S: 標本標準偏差を返します。

よくある質問

  • Q: Redis 5.0 と互換性のある一部の Tair DRAM ベースのインスタンスで、CHUNK_SIZE のデフォルト値が比較的小さいのはなぜですか?

    A: バージョン 25.2.0.0 以降、CHUNK_SIZE はデフォルトで 256 に設定されています。以前のバージョンでは、CHUNK_SIZE はデフォルトで 32 に設定されていました。