RedisJson
前因
在使用 FastAPI 框架时, 用到了 redis-om 包, 但是在使用时, 发现 redis-om 包默认不支持 Json 格式的数据, 需要引入对应的模块才可以. 详见: Github-issue
仅限使用的这个框架, 如果
FastAPI
中能有像Spring
中的RedisTemplate
那样的工具, 或者有像gson
、fastjson
这种序列化的包, 那就好了.
window
使用 RedisJSON
下载 redis
下载 rejson
安装 RedisJson 模块,需要先安装 Redis,然后再安装 RedisJson 模块。
1
2
3
4
5
6
7
8
9
10
11
12
13
14...
# loadmodule .\path\to\my_module.dll
# loadmodule c:\path\to\other_module.dll
# 加载模块
loadmodule .\ReJSON_for_Windows_1_0_6_1\ReJSON.dll
...
...
...
# requirepass foobared
# 设置密码
requirepass 123456
...运行
redis-server.exe redis.windows.conf
启动服务
ubuntu
使用 RedisJSON
下载对应系统版本的
RedisJson
!下载对应系统版本的RedisJson
!下载对应系统版本的RedisJson
!(重要)更新
docker-compose.yml
中的redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17...
redis:
restart: always # 重启策略
image: "redis:latest" # 镜像名 (${image}:${tag})
container_name: "redis" # 容器名 (自定义)
ports:
- "6379:6379" # 端口号 (宿主机:容器)
volumes: # 数据卷
- /opt/docker/redis/redis.conf:/etc/redis/redis.conf # 配置文件 (宿主机:容器)
- /opt/docker/redis/data:/data # 数据文件夹 (宿主机:容器)
- /opt/docker/redis/opt:/opt # redis module (宿主机:容器)
command: [ "redis-server","/etc/redis/redis.conf" ] # 启动 redis 服务
networks: # 网络桥段
- app
...复制
RedisJson
中的文件到/opt/docker/redis/opt/
文件夹下, 并赋予权限 (重要)1
2# 赋予 rejson.so 执行权限 (重要)
chmod +x ./rejson.so修改
redis.conf
中的loadmodule
1
2# 加载模块
loadmodule /opt/rejson.so重新跑
docker-compose.yml
即可错误排查
1
2
3
4
5
6
7
8
9
10
11# 查看容器日志
docker logs redis
# 查看最新 100 行日志
docker logs --tail 100 redis
## 错误信息1:
Module /opt/rejson.so failed to load: It does not have execute permissions.
Can't load module from /opt/rejson.so: server aborting
rejson.so 文件没有权限
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小四先生的云!
评论