RedisJSON命令¶
概述¶
支持JSON¶
RedisJSON的目标是提供全面支持ECMA-404 JSON数据交换标准.
下面这个词JSON值引用任何有效值。一个容器要么是一个JSON数组或者一个JSON对象.一个JSON标量是一个JSON数量,一个JSON字符串或字面的(JSON假,JSON真实或JSON零).
RedisJSON API¶
下面描述该模块的每个命令。每个section头显示了命令的语法,其中:
- 例如,命令和子命令的名称是大写的
JSON。集
或缩进
- 强制参数用尖括号括起来,例如:
<路径>
- 可选参数用方括号括起来,例如:
(指数)
- 其他可选参数由三个句号字符表示,即。
...
- 管道字符,
|
,表示排他性的或
命令通常要求键名作为第一个参数。的路径如果未指定,则通常假定为根。
命令的时间复杂度不包括路径.大小-通常表示N—的值为:
- 1表示标量值
- 容器中项目的大小之和
标量的命令¶
JSON。集¶
自1.0.0可用。
时间复杂度:O(M+N),其中M为原始值的大小(如果存在),N为新值的大小。
语法¶
JSON。集 [NX | XX]
描述¶
将JSON值设置为路径
在关键
对于新的Redis键路径
一定是根。对于现有的密钥,当整个路径
时,它所包含的值将被替换为json
价值。
一个键(及其各自的值)被添加到一个JSON对象(在一个Redis RedisJSON数据类型键),当且仅当它是路径
.可选的子命令修改这两个新的Redis RedisJSON数据类型键以及JSON对象键的行为:
NX
-仅在密钥不存在时设置XX
-只在密钥已经存在的情况下设置
返回值¶
简单的字符串好吧
如果执行正确,或者零批量如果指定的NX
或XX
条件没有得到满足。
JSON。得到¶
自1.0.0可用。
时间复杂度:O(N),其中N为值的大小。
语法¶
JSON。得到 [INDENT indentation-string] [NEWLINE line-break-string] [SPACE space-string] [path ...]
描述¶
返回路径
JSON序列化形式。
此命令接受多个路径
S,当没有给出根值时默认为根值。
下面的子命令会更改回复的格式,默认情况下都设置为空字符串:*缩进
设置嵌套级别*的缩进字符串换行符
设置在每行末尾打印的字符串*空间
设置放在键和值之间的字符串
漂亮格式的JSON是可生产的redis-cli
下面这个例子:
~/$ redis-cli——raw 127.0.0.1:6379> JSON。得到myjsonkey INDENT "\t" NEWLINE "\n" SPACE " " path.to.value[1]
返回值¶
数组的大部分字符串,具体来说,每个字符串是每个匹配路径的JSON值的JSON序列化。
JSON。MGET¶
自1.0.0可用。
时间复杂度:O(M*N),其中M为键的个数,N为值的大小。
语法¶
JSON。MGET [key ...]
描述¶
返回路径
从多个关键
不存在的键和不存在的路径被报告为空。
返回值¶
数组的大部分字符串,特别是在每个键的路径上的值的JSON序列化。
JSON。▽¶
自1.0.0可用。
时间复杂度:O(N),其中N为被删除值的大小。
语法¶
JSON。▽ [path]
描述¶
删除一个值。
路径
如果没有提供,默认为root。不存在的键和路径将被忽略。删除一个对象的根等同于从Redis中删除密钥。
返回值¶
整数,即删除的路径数(0或更多)。
JSON。NUMINCRBY¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。NUMINCRBY
描述¶
递增存储在路径
通过数量
.
返回值¶
大部分字符串,特别是字符串化的新值。
JSON。NUMMULTBY¶
已弃用-可能在未来的版本中被删除
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。NUMMULTBY
描述¶
乘以存储在路径
通过数量
.
返回值¶
大部分字符串,特别是字符串化的新值。
JSON。STRAPPEND¶
自1.0.0可用。
时间复杂度:O(N),其中N是新字符串的长度。
语法¶
JSON。STRAPPEND [path] . STRAPPEND [path
描述¶
附加的json字符串
值(s)字符串在路径
.
路径
如果没有提供,默认为root。
返回值¶
整数,特别是字符串的新长度。
JSON。STRLEN¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。STRLEN <键>(路径)
描述¶
报告JSON字符串的长度路径
在关键
.
路径
如果没有提供,默认为root。如果关键
或路径
如果不存在,则返回null。
返回值¶
整数,特别是字符串的长度。
数组的命令¶
JSON。一个RRAPPEND¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。一个RRAPPEND [json ...]
描述¶
附加的json
值(s)放入数组路径
在最后一个元素之后。
返回值¶
整数,特别是数组的新大小。
JSON。一个RRINDEX¶
自1.0.0可用。
时间复杂度:O(N),其中N是数组的大小。
语法¶
JSON。一个RRINDEX [start [stop]]
在数组中搜索标量JSON值的第一个出现项。
可选的包容性开始
(默认为0)和排他性停止
(默认为0,表示包含最后一个元素)指定要搜索的数组切片。负数被解释为从末尾开始。
注意:超出范围的错误通过舍入数组的起始和结束来处理。反向索引范围(例如从1到0)将返回未找到。
返回值¶
数组,具体来说,对于与路径匹配的每个JSON值,数组中标量值的第一个位置,如果在数组中未找到-1,或者零元素,如果匹配的JSON值不是数组。
JSON。一个RRINSERT¶
自1.0.0可用。
时间复杂度:O(N),其中N是数组的大小。
语法¶
JSON。一个RRINSERT [json ...]
描述¶
插入json
值(s)放入数组路径
之前指数
(右转)。
索引必须在数组的范围内。插入在指数
数组前面加0。负索引值被解释为从末尾开始。
返回值¶
整数,特别是数组的新大小。
JSON。一个RRLEN¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。一个RRLEN [path]
报告JSON数组的长度路径
在关键
.
路径
如果没有提供,默认为root。如果关键
或路径
如果不存在,则返回null。
返回值¶
整数,特别是数组的长度。
JSON。一个RRPOP¶
自1.0.0可用。
时间复杂度:O(N),其中N是数组的大小指数
除了最后一个元素,O(1)否则。
语法¶
JSON。一个RRPOP [path [index]]
描述¶
从数组下标中删除并返回元素。
路径
如果没有提供,默认为root。指数
是数组中要开始弹出的位置(默认为-1,表示最后一个元素)。超出范围的索引四舍五入到它们各自的数组末端。弹出空数组将产生空值。
返回值¶
大部分字符串,特别是弹出的JSON值。
JSON。一个RRTRIM¶
自1.0.0可用。
时间复杂度:O(N),其中N是数组的大小。
语法¶
JSON。一个RRTRIM
描述¶
修剪数组,使其只包含指定的包含范围的元素。
这个命令是非常宽容的,使用超出范围的索引不会产生错误。如果开始
是大于数组的大小还是开始
>停止
,结果将是一个空数组。如果开始
< 0,那么它将被视为0。如果停止
大于数组末尾的元素时,它将被视为数组的最后一个元素。
返回值¶
整数,特别是数组的新大小。
对象的命令¶
JSON。OBJKEYS¶
自1.0.0可用。
时间复杂度:O(N),其中N是对象中的键数。
语法¶
JSON。OBJKEYS <键>(路径)
描述¶
返回被引用的对象中的键路径
.
路径
如果没有提供,默认为root。如果对象是空的,或者两者之一关键
或路径
不存在,则返回null。
返回值¶
JSON。OBJLEN¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。OBJLEN <键>(路径)
描述¶
报告JSON对象中的键的数量路径
在关键
.
路径
如果没有提供,默认为root。如果关键
或路径
如果不存在,则返回null。
返回值¶
整数,特别是对象中的键的数量。
模块的命令¶
JSON。类型¶
自1.0.0可用。
时间复杂度:O(1)。
语法¶
JSON。类型 [path]
描述¶
报告JSON值的类型路径
.
路径
如果没有提供,默认为root。如果关键
或路径
如果不存在,则返回null。
返回值¶
简单的字符串,特别是值的类型。
JSON。调试¶
自1.0.0可用。
时间复杂度:O(N),其中N为JSON值的大小。
语法¶
JSON。调试
描述¶
报告信息。
支持子命令是:
记忆关键> <(路径)
—以字节为单位报告内存使用情况。路径
如果没有提供,默认为root。帮助
-回复一个有用的信息
返回值¶
取决于所使用的子命令。
JSON。忘记¶
一个别名JSON。▽
.
JSON。分别地¶
自1.0.0可用。
时间复杂度:O(N),其中N为JSON值的大小。
语法¶
JSON。分别地 [path]
描述¶
返回JSON关键
在Redis序列化协议(RESP).
路径
如果没有提供,默认为root。该命令使用JSON到RESP的映射关系:—“JSON Null”映射为RESP Null大容量字符串- - - - - - JSON假
和真正的
值被映射到各自的分别地简单的字符串- JSON编号映射到RESP整数或RESP大部分字符串,取决于类型- JSON字符串被映射到RESP大部分字符串- JSON数组表示为RESP数组其中第一个元素是简单的字符串[
后面是数组的元素- JSON对象表示为RESP数组其中第一个元素是简单的字符串{
.每个连续的条目表示一个双条目的键值对数组的大部分字符串.
返回值¶
数组,特别是JSON的RESP表单。