tencent cloud

Tencent Cloud Distributed Cache (Redis OSS-Compatible)

JSON Moduleファミリー

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-20 18:29:13
AI翻訳
JSON Module(valkey-json)はJSONドキュメントのネイティブ保存・操作機能を提供し、ツリー構造でJSONデータを直接保存、クエリ、変更することを可能にします。JSONPath式(例:$.store.book[0].title)を使用して、ネストされた階層内の任意のノードに正確にアクセスできます。このモジュールは、ドキュメント型構成ストレージ、APIレスポンスキャッシュ、ネストされたオブジェクトクエリなど、柔軟なJSON構造操作が必要なシナリオに適しています。このモジュールはValkey 8.0以降でサポートされており、Redisコアコマンドセットには属しません。そのコアコマンドは機能別に以下の4種類に分類できます:
ドキュメントレベルの読み書き
JSON.SET:指定されたパスのJSON値を設定または更新します(NX/XX条件をサポート)。
JSON.GET:1つまたは複数のパスのJSON値を取得します。
JSON.DEL:指定したパスのノードを削除します。
JSON.MGET:複数のキーから同じパスの値を一括取得します。
タイプと構造のクエリ
JSON.TYPE:指定したパスのノードのJSONタイプ(object/array/string/number/boolean/null)を返します。
JSON.OBJLEN / JSON.OBJKEYS:オブジェクトのフィールド数またはフィールド名リストを返します。
JSON.ARRLEN:配列の長さを返します。
JSON.STRLEN:文字列値の長さを返します。
数値と文字列のアトミック操作
JSON.NUMINCRBY / JSON.NUMMULTBY:数値ノードに対してアトミックなインクリメントまたは乗算を実行します。
JSON.STRAPPEND:文字列ノードの末尾に内容を追加します。
JSON.TOGGLE:ブール値を切り替えます。
配列操作
JSON.ARRAPPEND:配列の末尾に要素を追加します。
JSON.ARRINSERT:指定したインデックス位置に要素を挿入します。
JSON.ARRPOP:指定したインデックス位置の要素をポップします。
JSON.ARRTRIM:配列をトリムし、指定した範囲を保持します。
JSON.ARRINDEX:配列内の要素のインデックス位置を検索します。
詳細については、Valkey公式ドキュメントのvalkey-jsonモジュールを参照してください。

コマンドサポートの概要

基本読み書きコマンド:JSON.SET、JSON.GET、JSON.MGET、JSON.MSET、JSON.DEL(エイリアスJSON.FORGETを含む)は、キー内のJSON値の設定/取得/一括読み取り/一括設定/削除に使用されます。Valkey 8.0の標準アーキテクチャとクラスタアーキテクチャの両方でサポートされています。
文字列操作コマンド:JSON.STRAPPEND、JSON.STRLEN。JSON文字列への内容の追記と文字列長の取得に使用されます。Valkey 8.0の標準アーキテクチャとクラスタアーキテクチャの両方でサポートされています。
数値操作コマンド:JSON.NUMINCRBY、JSON.NUMMULTBY。JSON数値の加算、減算、乗算に使用されます。Valkey 8.0の標準アーキテクチャとクラスタアーキテクチャの両方でサポートされています。
配列操作コマンド:JSON.ARRAPPEND、JSON.ARRINDEX、JSON.ARRINSERT、JSON.ARRLEN、JSON.ARRPOP、JSON.ARRTRIM。配列への要素の追加、要素インデックスの検索、要素の挿入、配列長の取得、要素のポップ、配列のトリムに使用されます。Valkey 8.0の標準アーキテクチャとクラスタアーキテクチャの両方でサポートされています。
オブジェクト操作コマンド:JSON.OBJKEYS、JSON.OBJLEN、JSON.CLEAR。オブジェクトのキー名の取得、オブジェクトのキー数の取得、配列またはオブジェクトのクリアに使用されます。Valkey 8.0の標準アーキテクチャとクラスタアーキテクチャの両方でサポートされています。
型およびデバッグコマンド:JSON.TYPE、JSON.TOGGLE、JSON.RESP、JSON.DEBUG。値の型の取得、ブール値の切り替え、RESP形式でのJSON値の返却、デバッグ情報の取得に使用されます(JSON.DEBUGのKEYTABLE-CORRUPT、KEYTABLE-CLEAR、KEYTABLE-DISTRIBUTIONサブコマンドは、モジュール読み込み時にjson.debug-modeを有効にする必要があります)。
クロスSlot制限:ほとんどのコマンドは単一キーを操作し、標準のキールーティング規則に従います。JSON.MGETおよびJSON.MSETはマルチキーコマンドであり、クラスタアーキテクチャではすべてのキーが同一ハッシュスロット(Slot)に存在する必要があります。そうでない場合、CROSSSLOTエラーが発生します。同一グループのキーを同一Slotに配置するには、Hash Tag(例:{user}:profile、{user}:settings)の使用を推奨します。

コマンド互換性マトリクス

この系コマンドの各バージョンおよびアーキテクチャにおけるサポート状況は以下の表の通りです(✓はサポート、✗は非サポート、—は該当コマンドにクロスSlotアクセスシーンが存在しないことを示します)。
コマンド
Valkey 9.0スタンダードアーキテクチャ
Valkey 9.0クラスタアーキテクチャ
Valkey 8.0スタンダードアーキテクチャ
Valkey 8.0クラスタアーキテクチャ
クラスタアーキテクチャのクロススロット対応
json.set
✓
✓
✓
✓
—
json.get
✓
✓
✓
✓
—
json.mget
✓
✓
✓
✓
✗
json.mset
✓
✓
✓
✓
✗
json.del
✓
✓
✓
✓
—
json.forget
✓
✓
✓
✓
—
json.strappend
✓
✓
✓
✓
—
json.strlen
✓
✓
✓
✓
—
json.numincrby
✓
✓
✓
✓
—
json.nummultby
✓
✓
✓
✓
—
json.arrappend
✓
✓
✓
✓
—
json.arrindex
✓
✓
✓
✓
—
json.arrinsert
✓
✓
✓
✓
—
json.arrlen
✓
✓
✓
✓
—
json.arrpop
✓
✓
✓
✓
—
json.arrtrim
✓
✓
✓
✓
—
json.objkeys
✓
✓
✓
✓
—
json.objlen
✓
✓
✓
✓
—
json.clear
✓
✓
✓
✓
—
json.type
✓
✓
✓
✓
—
json.toggle
✓
✓
✓
✓
—
json.resp
✓
✓
✓
✓
—
json.debug
✓
✓
✓
✓
—

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック