闲暇之余粗略了解一下RedisJSON的一些特性,有预感用来搭配LinkCore的开发模式会有惊喜。查了百度发现能研究的中文资料挺少的,所以老规矩自给自足造福他人。 关键字: Redis,RedisJSON,JSON
RESP
Redis 客户端用于 Redis 服务进行交互的协议,成为 RESP 官方原文地址可以 戳这里
实际上去了解RESP是想了解 $ 符号的意思,所以摘录了一些认为相对重要的信息
RESP 数据类型
在 RESP 中,某些数据的类型取决于第一个字节:
- 对于简单字符串,应答的第一个字节是“ +”
- 对于错误,回复的第一个字节是“-”
- 对于整数,回复的第一个字节是“ :”
- 对于批量字符串,应答的第一个字节是“ $”
- 对于数组,回复的第一个字节是“ *”
启用RedisJSON服务
RedisJSON 是一个 Redis 模块,它允许从 Redis 键存储、更新和获取 JSON 值。
RedisJSON 是在 Redis 使用 < 3开发的,源代码可以在: RedisJSON GITHUB 获得
快速启用
- 在 Redis Cloud 中创建一个免费数据库
- 使用 Docker 启动 RedisJSON
- 从任何 Redis 客户端使用它,例如:
或者,您也可以自己构建和加载模块
Redis Cloud
RedisJSON 可用于所有 Redis Cloud 管理的服务,包括一个完全免费的层高达30mb! 从这里开始
Docker 启动
使用 Docker 在 Windows、 MacOS 或 Linux 上运行下面的代码
docker run -p 6379:6379 --name redis-redisjson redislabs/rejson:latest
自己构建加载模块
目前官方还只提供了一个Ubuntu 20.04
的构建方案
sudo apt install build-essential llvm cmake libclang1 libclang-dev cargo
cargo build --release
构建后就可以通过Redis服务加载,但是这里要求版本要v5.0以上
通过修改配置文件redis.conf
添加如下内容
loadmodule /path/to/module/target/release/librejson.so
如果是Mac OS系统配置会有所不同
loadmodule /path/to/module/target/release/librejson.dylib
或者,你可以使用以下命令行参数语法让 Redis 加载模块:
~/$ redis-server --loadmodule ./target/release/librejson.so
客户端库
官方列举了Node.js、Java、Python、Go、.NET、PHP等语言 可以戳这里