RedisJSON 入门教程

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

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

相关文章

文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的...
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒...
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb...
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn...
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无...