行业资讯
📅 2026/8/18 14:17:07
认识 Redis OM Spring:Spring Boot 开发者必知的 Redis 搜索与文档框架
认识 Redis OM SpringSpring Boot 开发者必知的 Redis 搜索与文档框架【免费下载链接】redis-om-springSpring Data Redis extensions for better search, documents models, and more项目地址: https://gitcode.com/gh_mirrors/re/redis-om-springRedis OM Spring 是构建在 Spring Data Redis 之上的开源对象映射框架让 Spring Boot 开发者能够轻松使用Redis 搜索、JSON 文档存储和高级查询能力。本文将从零开始认识这个被众多 Java 后端团队青睐的Redis 搜索与文档框架帮助你快速理解它的核心价值、安装配置方式以及实际用法。为什么 Spring Boot 开发者需要 Redis OM Spring传统 Spring Data Redis 擅长处理键值Key-Value操作但面对全文搜索、复杂过滤、地理位置查询、向量相似度搜索等场景时往往需要你手写大量 Redis 命令。Redis OM Spring 的出现正是为了解决这个问题对象映射Object Mapping用Document注解把 Java 类直接映射为 Redis 中的 JSON 文档像操作普通实体一样操作 Redis。声明式搜索通过Indexed、Searchable等注解自动创建二级索引无需手工执行FT.CREATE命令。仓库抽象Repository继承RedisDocumentRepository接口根据方法名自动生成复杂查询大大减少样板代码。简单说它把 Redis 从缓存升级为可搜索的数据库而这套能力对业务开发几乎是零学习成本的。Redis OM Spring 核心功能一览 功能分类具体能力对应注解 / 接口文档映射JSON 文档持久化、嵌套对象、集合Document搜索索引全文搜索、标签过滤、数值区间Searchable、Indexed地理查询基于经纬度的附近查找GeoIndexed仓库查询方法名派生查询、自定义查询RedisDocumentRepository、Query流式查询类似 Java Stream 的链式查询与聚合EntityStream概率结构布隆过滤器等海量判重Bloom、Cuckoo、CountMin向量搜索语义搜索、推荐系统VectorIndexed、VectorizeRedis OM Spring 整体架构是怎样的️理解架构能帮你快速定位自己需要用到的部分。下图展示了 Redis OM Spring 的完整架构上层是 Spring Boot 应用与框架核心仓库抽象、搜索索引、Entity Streams 以及基于 Spring AI 的向量嵌入模块下层是 Redis 提供的 JSON 文档、查询引擎全文与向量和概率数据结构。核心模块的源码位于项目内的redis-om-spring/src/main/java/com/redis/om/spring/目录下其中repository/存放仓库实现、search/stream/存放 Entity Streams 流式查询实现、indexing/负责索引的创建与迁移。快速开始5 分钟跑通第一个 Redis 搜索应用 ⚡第一步准备 Redis 环境Redis OM Spring 依赖 Redis 的查询引擎与 JSON 模块最简单的启动方式是用 Dockerdocker run -p 6379:6379 redis:8.0.0如果使用旧版本 Redis则需要选用包含搜索和 JSON 模块的 Redis Stack 发行版。第二步引入依赖并启用仓库在pom.xml中加入核心依赖然后在启动类上添加EnableRedisDocumentRepositories注解SpringBootApplication EnableRedisDocumentRepositories public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }Maven 坐标请根据你的 Spring Boot 版本选择对应版本号dependency groupIdcom.redis.om/groupId artifactIdredis-om-spring/artifactId version2.0.0/version /dependency第三步定义文档模型创建一个Company类用注解声明哪些字段需要被搜索Document public class Company { Id private String id; Searchable private String name; Indexed private SetString tags; Indexed private Integer yearFounded; Indexed private Point location; }Searchable会为字段创建全文索引Indexed则根据字段类型自动创建数值、标签或地理索引。感兴趣的读者可以参考演示项目demos/roms-documents/中的完整示例其模型定义位于demos/roms-documents/src/main/java/com/redis/om/documents/domain/目录。第四步声明仓库接口只需继承RedisDocumentRepository并声明查询方法框架会在运行时自动生成实现public interface CompanyRepository extends RedisDocumentRepositoryCompany, String { // 根据名称全文搜索 OptionalCompany findOneByName(String name); // 数值区间查询 IterableCompany findByNumberOfEmployeesBetween(int low, int high); // 地理位置附近查询 IterableCompany findByLocationNear(Point point, Distance distance); // 前缀匹配查询 IterableCompany findByNameStartingWith(String prefix); }RedisDocumentRepository 为什么如此强大RedisDocumentRepository的继承体系继承了 Spring Data 生态的经典设计它综合了CrudRepository基础增删改查、PagingAndSortingRepository分页排序、QueryByExampleExecutor按示例查询三大能力也就是说 Spring Data 社区熟悉的开发模式在 Redis 上完全通用。Entity Streams用 Stream 风格做复杂查询 对于更复杂的查询和聚合Redis OM Spring 提供了EntityStreamAPI。它基于编译期自动生成的元模型如Person$实现类型安全的链式查询所有操作会延迟到collect等终止操作时才真正下发到 Redis 执行ListCompany result entityStream .of(Company.class) .filter(Company$.YEAR_FOUNDED.between(1980, 2020)) .sorted(Company$.NAME) .limit(10) .collect(Collectors.toList());这种写法和 Java 8 Stream 几乎一模一样但查询是在 Redis 服务端完成的性能与可读性兼得。元模型生成器源码位于redis-om-spring/src/main/java/com/redis/om/spring/metamodel/目录。进阶玩法向量搜索与 AI 集成 Redis OM Spring 还支持向量相似度搜索VSS配合redis-om-spring-ai模块可以自动调用 OpenAI、Azure、Ollama 等嵌入服务生成向量非常适合构建语义搜索和推荐系统Vectorize自动把文本或图片转换为向量嵌入VectorIndexed为向量字段创建 HNSW 或 FLAT 索引结合EntityStream的knn过滤实现以文搜文以图搜图。演示项目demos/roms-vss/和demos/roms-hybrid/分别展示了向量推荐与全文向量混合搜索的完整用法。版本选择与兼容性 ⚠️选择版本时务必让Redis OM Spring 版本与 Spring Boot 版本匹配否则可能出现 API 不兼容的问题Redis OM SpringSpring BootJava状态1.0.x3.4.x17维护中1.1.x3.5.x17当前稳定版2.0.x4.0.x17最新版此外如果编译时出现找不到Person$之类的元模型类请检查是否在 Maven 或 Gradle 中显式配置了 Redis OM Spring 的注解处理器Annotation Processor。总结 Redis OM Spring 把 Redis 强大的搜索、JSON 文档、向量与概率数据结构能力封装成了 Spring Boot 开发者熟悉的注解与仓库模式。无论你是想给现有项目加全文搜索还是构建推荐系统、多租户应用它都能帮你显著减少底层代码量。项目内置了从demos/roms-documents、demos/roms-hashes到demos/roms-multitenant等十余个可直接运行的演示工程克隆仓库后进入任意 demo 目录即可体验完整的官方文档则位于docs/content/modules/ROOT/pages/目录下。如果你正在规划下一个 Spring Boot 项目的数据层不妨现在就试试这个 Redis 搜索与文档框架。【免费下载链接】redis-om-springSpring Data Redis extensions for better search, documents models, and more项目地址: https://gitcode.com/gh_mirrors/re/redis-om-spring创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考