JSON.MSET
根据指定的 key-path-value 三元组设置或更新一个或多个 JSON 值
语法
JSON.MSET key path value [key path value ...]
引入版本:2.6.0
复杂度摘要:O(K*(M+N)
[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。
根据指定的key-path-value三元组设置或更新一个或多个JSON值
JSON.MSET 是原子的,因此,所有给定的添加或更新要么应用,要么不应用。客户端不可能看到某些键已更新而其他键未更改。
JSON值是一个层次结构。如果更改特定路径中的值 - 嵌套值会受到影响。
[!警告] 当启用集群模式时,所有指定的键必须驻留在同一个 哈希槽 上。
必需参数
key
修改关键。
path
是JSONPath来指定。对于新的 Redis 键,path 必须是根。对于现有键,当整个 path 存在时,它包含的值将替换为 json 值。对于现有键,当 path 存在时,除了最后一个元素之外,将添加一个带有 json 值的新子元素。
value
是在指定路径设置的值
示例
Add a new values in multiple keys
redis> JSON.MSET doc1 $ '{"a":1}' doc2 $ '{"f":{"a":2}}' doc3 $ '{"f1":{"a":0},"f2":{"a":0}}' OK redis> JSON.MSET doc1 $ '{"a":2}' doc2 $.f.a '3' doc3 $ '{"f1":{"a":1},"f2":{"a":2}}' OK redis> JSON.GET doc1 $ "[{\"a\":2}]" redis> JSON.GET doc2 $ "[{\"f\":{\"a\":3}}]" redis> JSON.GET doc3 "{\"f1\":{\"a\":1},\"f2\":{\"a\":2}}"
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ❌ 标准 |
❌ 标准 |
返回值
RESP2
以下之一: * 简单字符串回复:OK(如果执行正确)。 * 简单错误回复:如果操作失败则设置新值。
RESP3
以下之一: * 简单字符串回复:OK(如果执行正确)。 * 简单错误回复:如果操作失败则设置新值。
参见
JSON.SET | JSON.MGET | JSON.GET
相关主题
资料来源:Redis 官方 JSON.MSET 文档;中文内容参考 Redis 文档许可。