什么是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 Stack不想再让开发人员受苦了!的更多相关文章

  1. Docker安装 Redis Stack(开发适配-提供 Redis Stack 服务器和RedisInsight可视化) (6.2.4-v2版本)

    一.使用docker安装(开发适配-提供 Redis Stack 服务器和RedisInsight) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版T ...

  2. python基础练习题(题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少)

    day13 --------------------------------------------------------------- 实例021:猴子偷桃 题目 猴子吃桃问题:猴子第一天摘下若干 ...

  3. Redis Stack(生产适配-仅提供 Redis Stack 服务器) (6.2.4-v2版本)

    一.使用docker安装(生产适配-仅提供 Redis Stack 服务端) (6.2.4-v2版本) 简介 安装命令根据实际部署情况调整 版本地址:官方镜像主页 | 发布版Tags 指定版本命令-推 ...

  4. (转)想从事游戏开发,1 年内能精通 C++ 吗,还需要学习什么?

    本人大约从20多年前开始学习及使用C++,但仍未达到我认为「精通」的阶段,甚至对于C++11的各种新特性也未掌握.然而因为我是在读书时自学C++的,也是游戏程序员(原问题中提到题主想从事游戏开发),觉 ...

  5. 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

    老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...

  6. 技术分享:Dapr,让开发人员更轻松地构建微服务应用

    最近一直在学习微服务相关的技术.微服务架构已成为构建云原生应用程序的标准,并且可以预见,到2022年,将有90%的新应用程序采用微服务架构.微服务架构提供了令人信服的好处,包括可伸缩性,松散的服务耦合 ...

  7. 老李分享:Uber究竟是用什么开发语言? 1

    老李分享:Uber究竟是用什么开发语言?   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9 ...

  8. 老李分享:loadrunner的java user脚本开发

    老李分享:loadrunner的java user脚本开发 poptest在性能测试loadrunner的课程里,以web协议为主,同时也讲解其他协议的脚本开发,对于一个性能测试工程师需要掌握一个以上 ...

  9. 《Odoo开发指南》精选分享—第1章-开始使用Odoo开发(1)

    引言 在进入Odoo开发之前,我们需要建立我们的开发环境,并学习它的基本管理任务. 在本章中,我们将学习如何设置工作环境,在这里我们将构建我们的Odoo应用程序.我们将学习如何设置Debian或Ubu ...

  10. 想做web开发 就学JavaScript

    有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了大学,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 鉴于当前的状况和趋势 ...

随机推荐

  1. 实例讲解看nsenter带你“上帝视角”看网络

    摘要:本文重点关注进入目标进程的"网络ns"视角,即站在「容器中的进程视角」看待容器里面的网络世界,并在那个视角中执行命令. 本文分享自华为云社区<<跟唐老师学习云网络 ...

  2. C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法有什么区别?

    前言 今天我们将探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace.这两个方法在处理字符串时非常常见,但是它们之间存在一些细微的区别.在本文中,我们将 ...

  3. pyinstaller打包程序后提示No module named ‘xxxx‘

    解决方法1 1.检查 先在venv环境中安装xxx 报错的这个包 以我的举例 查看settings>project interpreter  (存在对应的包) 解决方法2 2.在xxx.spec ...

  4. Windows查询进程和杀死进程

    查询进程 查询进程占用的端口(通过端口查询) netstat -ano |findstr "端口号" 杀死进程 通过进程号查看所属进程名称 tasklist |findstr &q ...

  5. OpenUSD联盟:塑造元宇宙的3D未来

    一.引言 近日,美国3D内容行业的五家主要公司苹果.英伟达.皮克斯.Adobe和Autodesk联合成立了OpenUSD联盟(AOUSD).这一联盟的成立标志着元宇宙领域的一次重要合作,旨在制定元宇宙 ...

  6. 26种source-map看花了眼?别急,理解这几个全弄懂

    上一篇 webpack处理模块化源码 的文章中提到了 "source map",这一篇来详细说说. 有什么作用 source map 用于映射编译后的代码与源码,这样如果编译后的代 ...

  7. 从浅入深了解.NET Core MVC 2.x全面教程

    一.基础 1.默认配置 使用Kestrel Web Server ASP.NET Core内置--跨平台 IIS集成 UseIIS() UseIISIntergration() Log IConfig ...

  8. [Python]树基础

    关于树 树是一种数据结构,由n个有限节点组成的一个具有层次关系的集合.二叉树则是每个节点最多有两个子树的树结构.二叉树一般有以下性质: 二叉树第k层上的节点数目最多为 \(2^{k-1}\) 深度为 ...

  9. 监控keepalived_vip控制容器的状态

    需求:监控server服务器的vip状态,如果vip存在,则判断容器是否启动,如果没有启动,则启动容器.如果vip不存在则关闭容器. 方法一: 查看代码 #!/bin/bash ip add | gr ...

  10. 【干货】华为云图数据库GES技术演进

    本文分享自华为云社区<[干货]华为云图数据库GES技术演进>,作者: Chenyi. 1 背景 大规模图数据无处不在,图查询.分析和表示学习已成为大数据和AI的核心部分之一.特别是知识图谱 ...