RedisJSON 是Redis的第三方拓展模块,它实现了JSON数据类型的支持,允许对JSON数据进行快速增、删、查改操作,它比在MongoDB读写分别快了12.7和5.4倍,比在ElasticSearch读写分别快了500和200倍,是一个高性能的操作模块

想尝鲜RedisJSON的最容易方式是使用Docker了,我在这里也是使用Docker进行安装


使用Docker拉取镜像

第一次运行,需要从仓库拉取镜像,这个镜像是已经包含了RedisJSON模块的Redis数据库,等同于官方的Redis使用即可

docker run -p 6379:6379 --name redis-redisjson redislabs/rejson:latest

在这里插入图片描述


Redis 正常运行

看到启动日志显示Ready to accept connections后,就表示Redis可以正常使用了
在这里插入图片描述


使用Redis Desktop Manager连接

打开Redis Desktop Manager,点击Connect to Redis Server按钮,新建一个新的连接
在这里插入图片描述


打开命令行控制台

在任一数据库操作栏,点击Open Console按钮进入命令行控制台
在这里插入图片描述
在这里插入图片描述


保存操作JSON.SET

语法:
JSON.SET <key> <path> <json>
         [NX | XX]
例子:
JSON.SET doc $ '{"a":2, "b": 3, "nested": {"a": 4, "b": null}}'

在这里插入图片描述

说明:
  • 对于新的Key,path需要使用$.
  • 如果是已经存在Key,在进行保存操作之后,原来path路径的值将会被替换掉;
  • NX 表示只有Key不存在,才执行保存操作
  • XX 表示只有Key存在,才执行保存操作
  • 通过命令type doc可以查看到存储进去的数据是ReJSON-RL类型

读取操作JSON.GET

语法:
JSON.GET <key>
         [INDENT indentation-string]
         [NEWLINE line-break-string]
         [SPACE space-string]
         [path ...]
例子:
JSON.GET doc nested

在这里插入图片描述

说明:
  • 允许使用多个path进行查询
  • INDENT 查询结果替换掉默认缩进字符(用于返回Pretty-formatted JSON)
  • NEWLINE 查询结果替换掉默认换行符(用于返回Pretty-formatted JSON)
  • SPACE 查询结果替换掉默认空格(用于返回Pretty-formatted JSON)

批量读取操作JSON.MGET

语法:
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}'

再进行mget操作

JSON.MGET doc1 doc2 $..a

在这里插入图片描述

说明:
  • 最后一个参数作为path进行处理
  • 遍历每一个Keypath,如果不存在,则返回null

删除操作JSON.DEL

语法:
JSON.DEL <key> [path]
例子:
JSON.DEL doc $..a

在这里插入图片描述

说明:
  • path是可选的,如果没有输入,则默认整个Key删除掉

更多操作命令

除了上面的几种常见操作,官方还支持如下命令:

常用命令
  • JSON.NUMINCRBY
  • JSON.NUMMULTBY
  • JSON.STRAPPEND
  • JSON.STRLEN
数组命令
  • JSON.ARRAPPEND
  • JSON.ARRINDEX
  • JSON.ARRINSERT
  • JSON.ARRLEN
  • JSON.ARRPOP
  • JSON.ARRTRIM
对象命令
  • JSON.OBJKEYS
  • JSON.OBJLEN
组件命令
  • JSON.TYPE
  • JSON.DEBUG
  • JSON.FORGET
  • JSON.RESP

详细说明可以前往官方介绍查看

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐