Redis 是我们非常熟悉的内存键值对数据库,它有着丰富的数据结构,能够满足我们平时的绝大部分数据存储要求。然而,有些时候我们还希望可以对搜索,文档,图形,时间序列等进行数据建模,这个时候我们就可以使用 redis stack。
什么是 Redis Stack
Redis Stack 是一组软件套件,它主要由三部分组成。一个是 Redis Stack Server,一个是 RedisInsight,一个是 Redis Stack 客户端 SDK。
其中 Redis Stack Server 由 Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom 组成。
Redis Stack 客户端 SDK 除了包含常用的编程语言操作库之外,还包含了Redis 对象映射模型,通过使用Redis OM 我们将使用更少的代码来操作管理 redis 。
Redis Stack 提供了哪些功能
- 索引和查询 Redis 数据、运行聚合、执行全文搜索
- 运行高级向量相似性搜索 (KNN)
- 有效地存储和操作嵌套的 JSON 文档
- 将关系构建和建模为属性图
- 存储、查询和聚合时间序列数据
- 利用快速、空间和计算高效的概率数据结构
- 使用 RedisInsight 轻松可视化、调试和分析 Redis 数据
Redis vs Redis Stack
Redis Stack 更强调它的目的是构建实时应用程序,它不是 redis 的替代品,它和 redis 将会一同发展。
你可以通过 Redis 复制机制将数据复制到 Redis Stack,你也可以把 RDB 和 AOF 数据直接导入到 Redis Stack 中。
就目前来看,Redis 依然会独立发展和开发,但是 Redis Server 相比较会更强大一些。
如何安装
安装使用 redis-stack 非常简单,你可以直接去 redis 的官方网站进行下载二进制包,然后配置环境变量,就可以使用它。
此外,如果你是 linux 用户,你可以通过各种包管理工具进行安装。
当然如果你安装了 docker,你也可以使用 docker 来进行安装。
最后,你也可以在redis enterprise 云中运行 redis stack 或者在自己的云服务器上搭建运行。
总结
因为 redis stack 是由很多模块组成的,因此它的授权许可是分开的。Redis Stack Tools 的授权是 SSPL,Redis Stack Server 是 RSAL,而 Redis Stack Client SDK 的授权方式是 MIT。
Redis Server 未来可能还会添加更多功能,这主要取决于社区用户的需求。
Redis 目前最新版本是 7,未来应该还会有 8,redis 依然会独立发展,而 redis stack 也会继续发展,两者将会并行前行。