Skip to main content
Redis 8.0 版本于 2025 年 5 月发布,不仅仅是一个增量更新,而是一个变革性的版本,从根本上扩展了 Redis 的开箱即用功能。 多年来,开发者通过强大的模块如 RediSearch、RedisJSON 和 RedisTimeSeries 来扩展 Redis 的核心功能。Redis 8.0 通过将这些功能直接集成到主二进制文件中来简化这种体验。结果是一个统一且功能强大的工具,为现代数据密集型应用程序做好了准备,从实时分析到生成式 AI。 让我们深入了解 Redis 8.0 中最令人兴奋的新特性,看看它们如何彻底改变您的工作流程。

环境准备 🛠️

在深入之前,让我们先设置 Spring Boot 项目。您需要在 pom.xml 中添加以下依赖项。我们将包含标准的 Redis starter 和 Spring AI starter 用于向量搜索示例。
application.properties 中配置 Redis 和 OpenAI 凭据:

1. 原生 JSON 文档支持 📄

Redis 8.0 最重要的变化之一是将 RedisJSON 模块集成到核心中。现在您可以存储、检索和对复杂的 JSON 文档执行原子部分更新,而无需获取整个对象。

Redis 命令示例:管理汽车信息

让我们存储一辆汽车的信息,然后更新单个字段:

Spring Boot 示例:缓存汽车信息

让我们想象有一个 Car 类,我们希望将其作为 JSON 对象缓存在 Redis 中。 Car POJO(使用 Lombok 简化):
Car Service: 我们可以使用配置为处理 JSON 字符串的标准 RedisTemplate,并利用 Jackson 的 ObjectMapper 进行序列化。
这种方法简洁高效,让您能够直接在 Spring 中利用 Redis 作为丰富的文档缓存。

2. AI 革命:使用 Spring AI 进行向量相似性搜索 🧠

也许最具前瞻性的特性是新的向量集数据结构(目前处于测试阶段),巩固了 Redis 在 AI 生态系统中的地位。向量搜索允许您基于语义含义而不是精确关键词来查找数据,这是现代 AI 功能的支柱,如 RAG(检索增强生成)、推荐引擎和图像搜索。

Redis 命令示例:存储和查询图像向量

想象您有图像的向量嵌入。您可以存储它们并找到最相似的图像。

Spring Boot 示例:构建语义搜索服务

让我们构建一个服务,您可以存储文本文档并找到相似的文档。 VectorStore 配置: 首先,我们需要配置 VectorStore bean,Spring AI 将使用它与 Redis 交互。
语义搜索服务: 此服务将接受文本,使用 AI 模型(如 OpenAI 的)对其进行嵌入,将其存储在 Redis 中,并允许您搜索相似内容。
仅用几行代码,您就已经将强大的语义搜索引擎集成到您的 Spring Boot 应用程序中,全部由 Redis 8.0 提供支持。

3. 开发者体验提升:新的原子哈希命令

HGETDEL 命令是一个完美的例子。它允许您从哈希中检索字段的值并在单个原子操作中删除该字段。这对于处理存储在 Redis 哈希中的队列任务非常理想。

Spring Boot 示例:简单任务处理器

这种模式确保一旦工作者声明了任务,其他工作者就不能意外地处理同一个任务——全部通过单个高效的命令完成。

4. Redis 查询引擎:超越键值查找

虽然 Redis 在基于键的查找方面表现出色,但现实世界的应用程序通常需要根据数据内容来查询数据。新的 Redis 查询引擎现在是核心功能,允许您在 Hash 和 JSON 数据上创建二级索引。 这意味着您可以执行复杂的多字段查询,而无需维护手动索引,使您的应用程序逻辑更简单、更强大。

代码示例:索引和搜索汽车

假设您将汽车信息存储在哈希中。您可以创建索引以按品牌、价格、年份等条件查找汽车。

5. 底层优化:新的 I/O 线程模型

对于高级用户,Redis 8.0 引入了改进的 I/O 线程实现。通过设置 io-threads 配置参数(例如,io-threads 8),您可以利用现代多核 CPU 实现吞吐量的大幅增加——在基准测试中每秒操作数增加高达 2 倍。这允许单个 Redis 实例处理更多要求苛刻的工作负载。

总结

Redis 8.0 不仅仅是一个数据库升级,它是现代应用程序架构的一个重要里程碑。结合 Spring Boot 的强大功能,开发者现在可以构建更智能、更快速、更具扩展性的应用程序。