RedisJSON 是一种高性能 JSON 文档存储,允许开发人员构建现代应用程序。它在内存中存储和处理 JSON,以亚毫秒级支持每秒数百万次操作响应时间。 JSON 文档的原生索引、查询和全文搜索允许开发人员创建二级索引,快速查询数据。

安装:

拉取镜像

docker pull docker.io/redislabs/rejson

docker JSON如何添加代码 docker key.json_docker


查看一下镜像

docker images

docker JSON如何添加代码 docker key.json_docker_02

启动

docker run -d -p 6739:6379 --name rejson redislabs/rejson:latest

docker JSON如何添加代码 docker key.json_JSON_03

使用RedisJson
进入容器内部

docker exec -it rejson bash

docker JSON如何添加代码 docker key.json_运维_04

连接:

redis-cli

docker JSON如何添加代码 docker key.json_JSON_05

添加json

JSON.SET testjson . '{"key1":11,"key2":22}'

取出json中全部的值

JSON.GET testjson

取出json中其中一个key,key1 的值 注意空格

路径总是从JSON值的根开始。根由字符(.)表示。对于引用根的子级的路径,可以选择在路径前面加上根前缀。

JSON.GET testjson .key1

更多api命令:

命令和子命令的名称是大写的,例如JSON.SET 和INDENT
强制参数用尖括号括起来,例如<path>
可选参数用方括号括起来,例如[index]
其他可选参数由三个句点字符表示,即...
管道字符|表示异或

##标量命令
#设置json值
JSON.SET <key> <path> <json> [NX | XX]
说明:
NX: 如果不存在就添加
XX: 如果存在就更新

#查询key的值
JSON.GET <key> [INDENT indentation-string] [NEWLINE line-break-string] [SPACE space-string] [path ...]
说明:
可以接受多个path,默认是root
INDENT: 设置嵌套级别
NEWLINE: 每行末尾打印的字符串
SPACE: 设置key和value之间的字符串
JSON.GET myjsonkey INDENT "\t" NEWLINE "\n" SPACE " " .

JSON.SET doc $ '{"a":2, "b": 3, "nested": {"a": 4, "b": null}}'
JSON.GET doc $..b
JSON.GET doc ..a $..b


#查询指定路径下的多个key,不存在的key或path返回null
JSON.MGET <key> [key ...] <path>

JSON.SET doc1 $ '{"a":1, "b": 2, "nested": {"a": 3}, "c": null}'
JSON.SET doc2 $ '{"a":4, "b": 5, "nested": {"a": 6}, "c": null}'

JSON.MGET doc1 doc2 $..a

#删除值
JSON.DEL <key> [path]
说明: 
不存在的key或path会被忽略
返回integer

#增加数字的值
JSON.NUMINCRBY <key> <path> <number>

#数字乘法,过时了
JSON.NUMMULTBY <key> <path> <number>

#追加字符串
JSON.STRAPPEND <key> [path] <json-string>

#字符串的长度
JSON.STRLEN <key> [path]

##数组命令
#追加数组元素
JSON.ARRAPPEND <key> <path> <json> [json ...]

#搜索指定元素在数组中第一次出现的位置,如果存在返回索引,不存在返回-1
JSON.ARRINDEX <key> <path> <json-scalar> [start [stop]]
说明:
[start [stop]] 从start开始(包含)到stop(不包含)的范围

#在数组指定位置插入元素
JSON.ARRINSERT <key> <path> <index> <json> [json ...]
说明:
index: 0是数组第一个元素,负数表示从末端开始计算

#数组的长度
JSON.ARRLEN <key> [path]
说明:
如果key或path不存在,返回null

#删除返回数组中指定位置的元素
JSON.ARRPOP <key> [path [index]]
说明:
index: 默认是-1,最后一个元素


#去掉元素,使其仅包含指定的包含范围的元素
JSON.ARRTRIM <key> <path> <start> <stop>

##对象命令
#返回对象中的key
JSON.OBJKEYS <key> [path]

#返回对象key的数量
JSON.OBJLEN <key> [path]

##模块命令
#返回json value的数据类型
JSON.TYPE <key> [path]

#返回key的字节数
JSON.DEBUG MEMORY <key> [path]