Redis 官方其实还提供了以下拓展:
- RediSearch 全文索引 (FT.xxx 命令)
- https://github.com/RediSearch/RediSearch
- https://redisearch.io
- RedisJSON (ReJSON) 类似 MongoDB 那种文档存储
- https://github.com/RedisJSON/RedisJSON
- https://redisjson.io/
- RedisGears 基于 Redis 的一个可编程的数据处理框架
我的理解是生成 Redis 支持的控制逻辑,提交到 Redis,对其中的数据进行处理 - https://github.com/RedisGears/RedisGears
- https://redisgears.io
- RedisAI (RedisML)
- https://github.com/RedisAI/RedisAI
- https://redisai.io/
- RedisGraph 图数据库
- https://github.com/RedisGraph/RedisGraph
- https://redisgraph.io/
- RedisTimeSeries 时序数据库
- https://github.com/RedisTimeSeries/RedisTimeSeries
- https://redistimeseries.io/
- RedisBloom
- https://github.com/RedisBloom/RedisBloom
- https://redisbloom.io/
PS: 还有更多第三方拓展,参考 https://redis.io/modules。
关于授权协议
Redis 是 BSD 协议,Redis 拓展模块是 AGPL 协议。
2018 年 8 月,为了防止云服务厂商的利益侵害,Redis 拓展模块授权协议切换到 Apache v2.0 modified with Commons Clause (官方声明)。其中 Common Clause 就是限制提供商业的 Reids 服务。
2019 年 2 月,Redis 拓展模块授权协议再次切换,改成 Redis Source Available License (RSAL),(官方声明)。因为认为当前协议不够明确,容易让人产生误解,而且对 Redis 公司的权益保障不到位。
这个协议对普通用户(个人或企业)没有限制,只是限制了直接利用 Redis 服务赚钱的云厂商。我觉得这是开发者的合理诉求,没有什么值得质疑的。
模块的安装
如果只是要体验一下,不想编译,可以去 https://redis.com/redis-enterprise-software/download-center/modules/ 下载试用。
- 下载模块源代码,然后编译,生成动态链接库
xxx.so
- 修改 Redis 配置文件
loadmodule xxx.so
,然后重启 Redis 服务
PS: 也可以在启动时使用--loadmodule
参数动态加载模块。
比如 ReJSON:
wget https://github.com/RedisJSON/RedisJSON/archive/refs/tags/v2.0.6.zip -O redisjson-v2.0.6.zip
unzip redisjson-v2.0.6.zip
cd RedisJSON-2.0.6/
# 安装需要用到官网没有提到的 libclang.so
# From: bindgen-0.59.2/src/lib.rs
sudo apt install libclang-dev
cargo build --release
cargo test --features test
# 需要先安装 Rust (请参考其他资料)
# 我了解到的其他模块大多数是 C 写的,RedisJSON 比较特殊,用 Rust 写的
redis-server --loadmodule target/release/librejson.so
相关文章:RedisJSON 体验