valkey-json)はJSONドキュメントのネイティブ保存・操作機能を提供し、ツリー構造でJSONデータを直接保存、クエリ、変更することを可能にします。JSONPath式(例:$.store.book[0].title)を使用して、ネストされた階層内の任意のノードに正確にアクセスできます。このモジュールは、ドキュメント型構成ストレージ、APIレスポンスキャッシュ、ネストされたオブジェクトクエリなど、柔軟なJSON構造操作が必要なシナリオに適しています。このモジュールはValkey 8.0以降でサポートされており、Redisコアコマンドセットには属しません。そのコアコマンドは機能別に以下の4種類に分類できます: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を有効にする必要があります)。JSON.MGETおよびJSON.MSETはマルチキーコマンドであり、クラスタアーキテクチャではすべてのキーが同一ハッシュスロット(Slot)に存在する必要があります。そうでない場合、CROSSSLOTエラーが発生します。同一グループのキーを同一Slotに配置するには、Hash Tag(例:{user}:profile、{user}:settings)の使用を推奨します。コマンド | 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 | ✓ | ✓ | ✓ | ✓ | — |
フィードバック