JSON.MSET

Syntax
JSON.MSET key path value [key path value ...]
Available in:
Redis Stack / JSON 2.6.0
Time complexity:
O(K*(M+N)) where k is the number of keys in the command, when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, or O(K*(M+N)) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key

根据指定的key-path-value三元组设置或更新一个或多个JSON值

JSON.MSET 是原子性的,因此,所有给定的添加或更新要么全部应用,要么全部不应用。客户端不可能看到某些键已更新而其他键未更改的情况。

JSON 值是一个层次结构。如果您更改特定路径中的值 - 嵌套值会受到影响。

警告:
当集群模式启用时,所有指定的键必须位于同一个hash slot中。

示例

必需的参数

key

是修改的关键。

path

是用于指定的JSONPath。对于新的Redis键,path必须是根路径。对于现有的键,当整个path存在时,它包含的值将被json值替换。对于现有的键,当path存在时,除了最后一个元素外,将添加一个新的子元素,其值为json值。

value

是要在指定路径设置的值

返回值

JSET.MSET 返回一个简单的字符串回复:如果执行正确则返回 OK,如果设置新值失败则返回 error

有关回复的更多信息,请参阅Redis序列化协议规范

示例

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}}"

另请参阅

JSON.SET | JSON.MGET | JSON.GET


RATE THIS PAGE
Back to top ↑