跳到内容

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-只在密钥已经存在的情况下设置

返回值

简单的字符串好吧如果执行正确,或者零批量如果指定的NXXX条件没有得到满足。

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表单。

Baidu