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
进行处理遍历每一个
Key
的path
,如果不存在,则返回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
详细说明可以前往官方介绍查看