Redis OM Spring 生产部署指南Sentinel 高可用与 Redis Enterprise/Cloud 实战【免费下载链接】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 Boot 开发者从能跑走向稳定跑的关键一步。Redis OM Spring 作为 Spring Data Redis 的增强框架提供了DocumentJSON 文档映射、RediSearch 全文检索、向量相似度搜索等强大能力但许多新手在本地 Demo 运行顺畅后一上生产就遇到连接失败、主从切换后应用不恢复、Redis 服务商接入困难等头疼问题。本文将以Sentinel 高可用、Redis Enterprise与Redis Cloud三大生产场景为主线结合官方源码与真实配置给出一份开箱即用的部署实战指南。一、为什么生产环境必须考虑高可用架构单机 Redis 开发虽爽但一旦宕机缓存击穿、数据丢失、全链路雪崩随之而来。生产环境通常有三种高可用形态方案适用场景故障恢复复杂度Redis Sentinel自建机房、中小规模秒级自动故障转移⭐⭐Redis Enterprise企业自建、多租户、强一致秒级自动切换⭐⭐⭐Redis Cloud含 Azure Managed Redis上云、免运维、弹性伸缩平台托管⭐无论选择哪种Redis OM Spring 都通过标准 Spring Data Redis 配置无缝接入你的仓储层代码RedisDocumentRepository、RedisEnhancedRepository完全不需要改动。二、Sentinel 高可用最快配置方法Redis OM Spring 对 Sentinel 的支持开箱即用官方内置了SentinelConfig配置类源码见 SentinelConfig.java它会读取spring.data.redis.sentinel.master和spring.data.redis.sentinel.nodes两个属性自动创建基于 Jedis 的连接工厂与连接池。2.1 一键配置步骤在application.yml中加入以下配置即可spring: data: redis: sentinel: master: mymaster nodes: sentinel1:26379,sentinel2:26379,sentinel3:26379 password: your-redis-password三个要点帮你少踩坑nodes支持逗号分隔字符串也支持 YAML 列表格式官方用 Spring Binder 统一解析见 SentinelConfig.java。master名称必须与 Sentinel 配置中的主节点名称一致否则启动即报错。密码可选若 Sentinel 与 Redis 均启用认证请务必配置。2.2 Sentinel 连接池调优生产流量下默认连接池往往不够用。SentinelConfig 内部默认超时 10 秒你可以通过 Jedis 连接池属性覆盖spring: data: redis: jedis: pool: max-active: 50 max-idle: 25 min-idle: 10 max-wait: 2000ms test-on-borrow: true配置完成后仓储层查询如findByCategory、全文检索、JSON 文档读写都会透明地走 Sentinel 高可用链路主从切换期间应用自动重连无需任何业务代码改动。三、Redis Enterprise 部署实战Redis Enterprise 适合对数据一致性、多租户隔离有更高要求的企业。它与 Redis OM Spring 的集成要点有三条模块必须齐全Redis OM Spring 依赖 RediSearch 与 RedisJSON 模块请确认 Enterprise 数据库已启用这两个模块Redis 8 起 Query Engine 与 JSON 已成为标准组件。开启 SSLEnterprise 生产端口建议走 TLS配置spring.data.redis.ssltrue即可。ACL 用户隔离参考官方多 ACL 演示demos/roms-multi-acl-account用userA负责读写、userB仅读最小权限原则在金融级场景尤为关键user default off on redispass allcommands allkeys user userA on passwordA all allkeys user userB on passwordB read ping ft.create allkeys注意RediSearch 索引ft.create必须使用具备索引创建权限的用户初始化否则启动时索引构建会失败。四、Redis Cloud 托管服务接入指南上云是当下主流选择Redis Cloud 与 Azure Managed Redis 都能让团队免去运维负担。4.1 Redis Cloud 标准接入Redis Cloud 数据库通常在公网端口如 12345上提供服务配置方法与本地基本一致spring: data: redis: host: your.cloud.db.redislabs.com port: 12345 username: default password: xxxxxxxx4.2 Azure Managed Redis Entra ID 免密认证Azure Managed RedisAMR是生产环境的安全亮点——Redis OM Spring 原生支持Microsoft Entra ID原 Azure AD认证彻底告别硬编码访问密钥相关配置类见 EntraIDConfiguration.java。三步完成接入完整示例见 roms-amr-entraid 演示项目spring.data.redis.hostmy-amr-cluster.italynorth.redis.azure.net spring.data.redis.port10000 redis.om.spring.authentication.entra-id.enabledtrue redis.om.spring.authentication.entra-id.tenant-id你的Azure租户ID启动时 Redis OM Spring 会自动用 Entra ID 凭据完成认证配置属性由 RedisOMProperties.java 统一管理。安全性与便捷性兼得强烈推荐 Azure 用户采用。五、生产环境最佳实践清单结合官方文档sentinel.adoc与实战经验总结 8 条保命建议✅哨兵节点至少 3 个分布在不同的物理机或可用区。✅测试故障转移用redis-cli手动DEBUG SLEEP或杀掉主节点验证应用秒级恢复。✅连接池按峰值流量设计避免max-wait无限等待导致线程堆积。✅开启索引自动创建配置redis.om.index-creation-mode.create-and-replacetrue启动时自动建索引。✅监听哨兵事件通过 Spring 的SentinelMasterChangedEvent与RedisConnectionFailureEvent事件通知运维告警。✅密码与密钥走环境变量绝不让明文密码进入代码仓库。✅AI 模块单独引入仅当需要向量化嵌入时再引入redis-om-spring-ai减小依赖面。✅上线前跑一遍集成测试官方提供AbstractBaseDocumentSentinelTest基类tests/src/test/java/com/redis/om/spring/AbstractBaseDocumentSentinelTest.java配合 Testcontainers 可完整模拟哨兵故障场景。六、常见问题速查Q1配置 Sentinel 后启动报 master must be configured检查spring.data.redis.sentinel.master是否配置且与哨兵端一致。Q2主从切换后查询变慢或超时确认连接池test-on-borrowtrue避免拿到失效连接同时缩短read-timeout并增加重试策略。Q3索引没建出来确认执行启动的用户拥有ft.create权限Enterprise/ACL 场景高频踩坑。Q4本地 Demo 用 docker 起 Redis 的命令docker compose up即可拉起项目根目录 docker-compose.yml 中的 redis-stack 环境。七、总结从单机到生产Redis OM Spring 的高可用之路并不复杂Sentinel 解决自建场景的秒级故障转移Redis Enterprise 满足企业级一致性与隔离Redis Cloud 提供零运维托管体验。核心原则只有一个——让连接层足够健壮业务层保持简洁。希望这份部署指南能帮你把 Redis OM Spring 稳稳地跑在生产线上把精力留给真正的业务创新。【免费下载链接】redis-om-springSpring Data Redis extensions for better search, documents models, and more项目地址: https://gitcode.com/gh_mirrors/re/redis-om-spring创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考