RedisJSON模块的安装

  • 1.安装前的说明
  • 2. 下载rejson
  • 3.把下载好的rejson文件放入到redis的安装目录下的module(自己创建)目录中
  • 4. 将module目录下的rejson.so文件修改为可执行文件
  • 5.修改redis.conf配置文件,新增loadmodule
  • 6.重新启动redis
  • 7.查看已经加载的所有模块
  • 8.简单的使用ReJSON模块



在redis中可以使用大量的redis模块来扩展redis的功能,这里安装ReJSON模块

RedisJSON是一种高性能JSON文档存储,允许开发人员构建现代应用程序。它在内存中存储和处理JSON,以亚毫秒级支持每秒数百万次操作响应时间。JSON文档的原生索引、查询和全文搜索允许开发人员创建二级索引,快速查询数据。

主要特点:

  • 完全支持json标准
  • JSONPath语法,用于选择文档中的元素
  • 文档以二进制数据形式存储在树形结构中,从而可以快速访问子元素
  • 所有JSON值类型的类型化原子操作
  • 基于RedisSearch的二级索引支持

1.安装前的说明

本文是已经在虚拟机中的linux下安装了Redis;

2. 下载rejson

github上下载ReJSON的地址:https://github.com/RedisJSON/RedisJSON/releases 官方实用文档:https://oss.redis.com/redisjson/commands/#jsonset

这里使用的是二进制文件rejson.so文件截图如下:

redisson代码和redis的对应 redis rejson_redis


下载好的文件如下图所示:

redisson代码和redis的对应 redis rejson_linux_02


我电脑的redis.so文件放在了/opt/module目录下

redisson代码和redis的对应 redis rejson_服务器_03

3.把下载好的rejson文件放入到redis的安装目录下的module(自己创建)目录中

我的redis的安装目录在 /opt/redis-6.2.6目录下
打开终端输入命令进入到你的redis安装目录:

# 进入redis的安装目录
cd /opt/redis-6.2.6/

# 新建module文件夹
mkdir module

# 通过cp命令将rejson.so拷贝到module目录下
cp /opt/module/rejson.so ./module

# 查看是否拷贝成功,可以看到rejson.so文件则说明拷贝成功
ll ./module

# 运行结果
[hello@hadoop100 redis-6.2.6]$ ll ./module/
总用量 440
-rwxr-xr-x. 1 root root 449080 3月  28 09:12 rejson.so

得到的结果:

redisson代码和redis的对应 redis rejson_redisson代码和redis的对应_04

4. 将module目录下的rejson.so文件修改为可执行文件

命令:

# 进入module目录下
cd ./module

# 修改rejson.so为可执行文件
chmod +x rejson.so

5.修改redis.conf配置文件,新增loadmodule

找到redis.conf文件并使用vim编辑器进入,找到对应的位置并修改保存,

添加loadmodule /opt/redis-6.2.6/module/rejson.so 如下图:

redisson代码和redis的对应 redis rejson_redisson代码和redis的对应_05

6.重新启动redis

运行命令:

redis-server kconfig/redis.conf
redis-cli -p 6379

7.查看已经加载的所有模块

运行命令及运行后的结果:

# 显示ReJSON则说明安装成功,可以使用
127.0.0.1:6379[1]> module list
1) 1) "name"
   2) "ReJSON"
   3) "ver"
   4) (integer) 10004
127.0.0.1:6379[1]>

8.简单的使用ReJSON模块

# 向redis中写入key值为myjson的json数据类型
127.0.0.1:6379[1]> json.set myjson . '{"name":"xiaoli", "age":18, "advantage":"play"}'
OK

# 得到myjson的所有数据
127.0.0.1:6379[1]> json.get myjson
"{\"name\":\"xiaoli\",\"age\":18,\"advantage\":\"play\"}"

# 得到json数据中的键name的值
127.0.0.1:6379[1]> json.get myjson name
"\"xiaoli\""

# 得到json数据中的键age的值
127.0.0.1:6379[1]> json.get myjson age
"18"

# 得到json数据中的键advantage的值
127.0.0.1:6379[1]> json.get myjson advantage
"\"play\""