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 文档许可。