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