*Redis JSON.MSET 命令
JSON.MSET 在 RedisJSON 中同时设置多个 key 的 JSON 值。
*语法
JSON.MSET key path value [key path value ...]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | JSON 文档键名 |
| path | String | 是 | JSONPath 路径 |
| value | String | 是 | JSON 值 |
*返回值
- OK:全部设置成功
- Error:某个 key 设置失败
*时间复杂度
O(N*M),N 为 key 数量,M 为每个 JSON 值大小
*示例
*设置多个文档
> JSON.MSET doc1 $ '{"a": 1}' doc2 $ '{"b": 2}'
OK
> JSON.GET doc1
"{\"a\":1}"
> JSON.GET doc2
"{\"b\":2}"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR wrong number of arguments | 参数不成三元组 | key、path、value 必须成组 |
*最佳实践
- 批量设置减少网络往返
- 原子性操作,全部成功或全部失败
- 用于初始化多个 JSON 文档
*FAQ
Q1: 和 JSON.SET 有什么区别? A: JSON.MSET 支持多个 key;JSON.SET 只支持一个 key。
Q2: 是原子操作吗? A: 是的,所有设置作为一个原子操作执行。
Q3: key 已存在会怎样? A: 会覆盖已存在的值。