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例子:[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例子:[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 ...]
先保存两条记录
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例子:[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
详细说明可以点击查看官方介绍



