你想构建能提供实时体验的应用程序吗?那么你怎么可以不拥有 一个能以最快响应时间处理任何请求的数据库 ? 无论是简单的对象检索、搜索还是复杂的聚合,在一毫秒 之 内 便 完成。 领先的 Redis模块华丽变身为Redis Stack来帮你啦!
什么是 Redis Stack
Redis Stack:整合Redis模块的功能
为了 简化开发人员对较新的 Redis 模块及其提供的功能的体验,同时简化支持其功能的文档和客户端 。 以 帮助开发人员从开始使用 Redis 的那一刻起,就能充分提高工作效率。 Redis Stack 诞生了。 Redis Stack 将较新的 Redis 模块整合到一个产品中。这使得我们可以轻松地开始使用我们基于 Redis 的搜索、文档、图形和时间序列功能进行构建。
Redis Stack 是由三个组件组成的套件:
1. Redis Stack Server 将开源 Redis 与 RediSearch、RedisJSON、RedisGraph、RedisTimeSeries 和 RedisBloom 结合在一起。
2. RedisInsight 一款强大的工具,用于可视化和优化 Redis 数据,它使实时应用开发比以往任何时候都更简单、更有趣。
3. Redis Stack Client SDK 包括领先的 Java、JavaScript 和 Python 官方 Redis客户端。 这些客户端还包括 Redis 全新的对象映射库套件,这些库提供了对开发人员友好的抽象,只需几行代码即可大大提高工作效率。这些库被称为 Redis OM for .NET、Node.js、Java、Python,它们还能比以往更轻松地与 Spring、 ASP.NET Core、FastAPI 和 Express 等主要应用程序框架集成。
Redis Stack 入门
几种快速入门 Redis Stack 的方法:
· 直接从 redis.io 下载 Redis Stack
· 通过你最喜欢的软件包管理器安装,或直接启动 Redis Stack docker 镜像进行安装
· 通过在 Redis Enterprise Cloud 上创建免费数据库或在云中部署 Redis Stack。Redis Enterprise 中提供 了 Redis Stack 的能力,供用户自行管理或在企业内部部署。
当你的 Redis Stack Server 成功启动并运行,你就可以立即利用 RedisInsight 来可视化、分析并优化你的 Redis 数据。RedisInsight 包含一系列指南,可指导你了解多个 Redis Stack 使用案例。Redis Stack 现已全面支持 Redis 6.2, 并已存在支持 Redis 7.0 的候选版本。
客户端侧 : 在 几款领先的Redis客户端,Jedis(Java)、redis-py(Python)和node-redis(JavaScript)中提供了对Redis Stack的良好支持,并提供了 Redis 的全新对象映射库(redis-om-spring、redis-om-python、redis-om-node和redis-om-dotnet)。 用户 可以为 Redis 支持的每种语言clone一个示例资源库,并开始开发新创建的数据库。
Redis Stack会替代Redis吗?
Redis Stack 将为实时应用领域带来无限可能, 但 Redis Stack 并不是 Redis 的替代品。Redis 是一项核心开源技术, 企业 始终可以选择下载、构建、安装和运行开源 Redis。当你准备好运行 Redis Stack 时,你可以使用Redis复制机制或通过加载你的RDB或AOF文件来轻松迁移数据。
Redis Stack的许可模式
· Redis Stack 的所有代码库组件都是开放的,每个人都可以免费使用
· Redis Stack Server 是根据 Redis Source Available License 2.0(RSALv2)(与Redis 模块使用的许可证相同)提供的。
· 根据现有的服务器端公共许可证(SSPL)提供 RedisInsight。
· Redis clients 和 Redis 的对象映射库已根据开源 MIT 许可发布。
FAQ
Redis Stack 包含哪些组件?
· Redis Stack 是一个单独的软件包,其中包括搭载了最新的 Redis 模块的开源 Redis(即 Redis Stack Server)和 RedisInsight。
· 在 Redis Stack Server 的初始版本中,包含了五个模块: RedisJSON、RedisSearch、RedisGraph、RedisTimeSeries 和 RedisBloom。
· Redis Stack 由官方 Redis client 和对象映射库提供支持,允许开发人员在多个应用框架(包括 Spring、 ASP.Net Core、Express 和 FastAPI)中轻松使用Redis Stack 功能。
Redis Stack 为开发人员提供了哪些功能?
· 索引和查询 Redis 数据、聚合、执行全文搜索
· 运行向量相似性搜索(KNN)
· 高效存储和处理嵌套的 JSON 文档
· 以属性图的形式构建和模拟关系
· 存储、查询和聚合时间序列数据
· 充分利用快速、空间和计算效率高的概率数据结构
· 使用 RedisInsight 轻松实现 Redis 数据的可视化、调试和分析
Redis Stack 还会添加更多功能吗?
如果有以下情况, Redis官方团队 会考虑为 Redis Stack 添加新功能甚至模块:
1. 存在 社区的需求
2. 新功能符合Redis的愿景
3. Redis公司的工程团队能够正式支持新增功能
为什么 RedisGears 不是 Redis Stack 第一个版本的一部分?
· RedisGears 为 Redis 增加了数据库触发器、流处理、分布式函数和完全可编程性 。 为 JavaScript 提供 GA 支持后,将 RedisGears 添加到 Redis Stack 中。
什么是 Redis 对象映射库(object-mapping libraries)?
· Redis 对象映射库在 Redis 命令应用程序接口之上提供了一个抽象层次,就像 ORM 对 SQL 数据库的作用一样。 从而可以 把 Redis 客户端核心库与 Redis 对象映射库区分开来。
核心 Redis 客户端库有以下职责:
· 执行 Redis 协议(RESP 等)
· 管理连接(TCP 等)、重新连接、服务器发现等
· 管理执行逻辑(线程、异步 io 等)
· 为执行任意 Redis 命令暴露 Redis 的 API
· 以常用的交互语法风格的方式暴露 Redis 命令
· 通过连接字符串连接到任何 Redis 已部署的实例
对象映射库提供了额外的能力:
· 允许开发人员用尽可能少的代码行实现常见的 Redis 用例。目前,这包括领域建模和流畅的查询 API。未来,其他常见 Redis 用例 也将受到 支持,包括缓存、会话存储、速率限制、排行榜和去重器。
· 为 Redis Stack 提供的功能提供应用程序接口
· 在不暴露底层 Redis 命令的情况下提供 Redis 的优势能力
· 与主要应用框架(如 Spring、 ASP.NET Core、FastAPI、Express)集成
这些对象映射库总是依赖于一个或多个 Redis 核心库。
Redis Stack 是否有 .NET 客户端?
目前,向 .NET 开发人员推荐的客户端是 StackExchange,Redis 公司并不正式支持该客户端。用户可以使用 NRediSearch(用于 RediSearch)、NRedisGraph(用于 RedisGraph)和 NRedisTimeSeries(用于 RedisTimeSeries)扩展客户端。也可以使用建立在 StackExchange 基础上的 redis-om-dotnet 库。
我能在 Redis Enterprise Cloud 上使用 RedisInsight 吗?
RedisInsight 尚不能在 Redis Enterprise Cloud 上使用。 不过,可以将 RedisInsight 应用程序连接到云数据库。Redis计划在22年晚些时候将 RedisInsight 添加到云中。(目前已支持)
我能将我的 Redis Stack 数据库轻松迁移到 Redis Enterprise Cloud 吗?
是的,用户可以利用 Replica-Of 解决方案,将数据库迁移到完全托管的云服务中,而无需停机。
虹科云科技事业部是领先的云计算解决方案合作伙伴,面向各行各业的机构、企业、个人开发者提供数据库、商业智能、高性能计算、文件存储、数据管理、事件管理等产品及定制化解决方案服务。我们的使命是通过创新和变革性的计算机技术,加快各行各业数字化转型升级,实现降本增效。 我们与全球顶尖技术团队Redis、Domo、Weka等合作 ,期待为您提供高效稳定、安全可靠的云计算产品和全面性解决方案,满足您的所有业务需求。