RedisJSON 入门教程
RedisJSON 是Redis的第三方拓展模块,它实现了JSON数据类型的支持,允许对JSON数据进行快速增、删、查改操作,它比在MongoDB读写分别快了12.7和5.4倍,比在ElasticSearch读写分别快了500和200倍,是一个高性能的操作模块
·
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
详细说明可以前往官方介绍查看
更多推荐
已为社区贡献1条内容
所有评论(0)