Redis 存取 JSON 数据示例操作
作者:老王聊技术
Redis 存取 JSON 数据
本文来自网络,本人稍加修改
关于下面rejson安装的修正!!!
rejson安装我的按照下面的不行
我是下载rejson后,直接make,然后在src下发现有一个rejson.so,我直接用的这个
另外我启动的时候也不显示rejson信息,但是启动redis后可以存取json格式
1. 简介
Redis 本身有比较丰富的数据类型,例如 String、Hash、Set、List
JSON 是我们常用的数据类型,当我们需要在 Redis 中保存 json 数据时是怎么存放的呢?
一般是用 String 或者 Hash,但还是不太方便,无法灵活的操作 json 数据
在 Redis 4.0 中,有一个重大改进:modules 模块系统,可以让我们开发新的功能,集成到 redis 中
rejson 就是一个新的模块,为 redis 提供了 json 存储能力
2. 示例
2.1 基础操作
127.0.0.1:6379> JSON.SET object . '{"foo": "bar", "ans": 42}'
OK
127.0.0.1:6379> JSON.GET object
"{\"foo\":\"bar",\"ans\":42}"
先看下第一条命令的含义:
- JSON.SET 是json设置命令
- object 是 key
- . 是json文档的root,后面的一串是具体的 json 数据值
第二条命令是获取 key 为 object 的json数据
2.2 json 内部操作
- 获取某字段的值
127.0.0.1:6379> JSON.GET object .ans
"42"
命令中的 .ans 是目标路径,表示 root 下面的 ans
- 设置某字段值
127.0.0.1:6379> json.set object .name '"bill"'
OK
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":42,\"hi\":\"hello\",\"name\":\"bill\"}"
这个命令是在 root 下新增了一个字段 name,值为 bill
也可以修改已有字段的值,用法相同
- 删除字段
127.0.0.1:6379> json.del object .name
(integer) 1
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":42,\"hi\":\"hello\"}"
这个命令使用 del 把 root 下的 name 字段删除了
- 数字操作
ans 字段是数字类型,值为 42,下面对其执行 +3 操作
127.0.0.1:6379> json.numincrby object .ans 3
"45"
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":45,\"hi\":\"hello\"}"
还可以进行乘法操作
127.0.0.1:6379> json.nummultby object .ans 2
"90"
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":90,\"hi\":\"hello\"}"
直接删除整个json串
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":90}"
127.0.0.1:6379> json.del object
(integer) 0
127.0.0.1:6379> json.get object
(nil)
127.0.0.1:6379>
还有很多其他操作命令,具体可以查看项目文档
3. 安装
因为使用了模块功能,所以需要 redis 4.0 以上版本
3.1 安装流程
- 安装 redis 4.0
- 安装相关系统依赖
- 安装 rejson 模块
- redis 加载 rejson 模块
3.2 详细安装过程
安装 redis 4.0
wget https://github.com/antirez/redis/archive/4.0-rc2.tar.gz tar xzf 4.0-rc2.tar.gz cd redis-4.0-rc2/ make
安装依赖
yum groupinstall "Development Tools"
(这是 centos 中的安装方法,ubuntu 可以使用这个命令 apt-get install build-essential )
安装cmake
# wget https://cmake.org/files/v3.8/cmake-3.8.0-rc3.tar.gz # tar -xzvf cmake-2.8.11.2.tar.gz # cd cmake-2.8.11.2 # ./bootstrap # make # make install
直接下载rejson 模块
建议直接下载
建议直接下载
建议直接下载
直接下载
wget https://github.com/RedisJSON/RedisJSON/releases/download/v1.0.4/rejson.so
启动 redis 时加载 rejson.so
redis-server --loadmodule /path/to/module/rejson.so
在启动信息中会看到 rejson 的相关信息
...
<ReJSON> JSON data type for Redis
...
安装完成,可以登录 redis 执行 json 命令了
4. 小结
rejson 让我们可以在 redis 中存储和操作 json 数据,非常方便
而且通过体验 rejson 模块,还可以感受到 redis 模块系统的强大,以后将会出现各种基于redis的强大功能
rejson 项目地址:
https://redislabsmodules.github.io/rejson/
到此这篇关于Redis 存取 JSON 数据的文章就介绍到这了,更多相关Redis 存取 JSON 数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!