Redisson Spring集成实战:Spring Boot Starter、Cache与Session管理全攻略

Redisson Spring集成实战:Spring Boot Starter、Cache与Session管理全攻略 Redisson Spring集成实战Spring Boot Starter、Cache与Session管理全攻略【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redissonRedisson Spring集成是Java开发者接入 Redis 的最快路径通过 Spring Boot Starter 自动装配、Spring Cache 缓存支持和 Spring Session 分布式会话管理三大能力让 Redis 集群能力零成本融入 Spring 生态。本文带你从零上手覆盖依赖引入、YAML 配置、缓存策略选型与常见避坑点。为什么选择 Redisson 做 Spring 集成大多数项目直接用 Spring Data Redis 自带的 Lettuce 客户端它能应付单机场景但面对以下需求时会力不从心分布式锁、信号量、限流器等 50 种分布式 Java 对象⚡集群/哨兵高可用部署下的自动故障转移Map Reduce、布隆过滤器、本地缓存等高级服务同步/异步/RxJava/Reactive四种 API 风格Redisson 通过实现 Spring Data Redis 的RedisConnectionFactory接口把这些能力塞进标准 Spring 体系——你写的RedisTemplate代码一行不用改底层却换成了功能更强的 Redisson。官方集成文档docs/integration-with-spring.md第一步引入 Spring Boot Starter 一键装配这是整个集成中最简单的部分。只需一个 Maven 依赖Spring Boot 启动时就会自动创建RedissonClient、RedisTemplate、ReactiveRedisTemplate等全套 Bean。1. 添加依赖支持 Spring Boot 1.3.x - 4.0.xdependency groupIdorg.redisson/groupId artifactIdredisson-spring-boot-starter/artifactId versionxVERSIONx/version /dependency2. 在application.yml中配置连接可以直接使用 Spring Boot 标准属性Spring Boot 3.xspring: data: redis: host: 127.0.0.1 port: 6379 password: yourpassword3. 或者指定 Redisson 配置文件推荐功能更全spring: redis: redisson: file: classpath:redisson.yamlredisson.yaml支持单机、主从、哨兵、集群等全部部署模式语法参考 docs/configuration.md。老版本 Spring Boot 怎么兼容Starter 默认依赖最新版 Spring Data 适配模块旧版项目需要替换对应模块模块名对应 Spring Boot 版本redisson-spring-data-161.3.yredisson-spring-data-272.7.yredisson-spring-data-353.5.yredisson-spring-data-414.1.y源码位置redisson-spring/redisson-spring-data/适配逻辑见 RedissonAutoConfigurationV2.java覆盖 Spring Boot 2.7 - 3.5。 没有 Redis 的环境如何禁用在application.yml中排除自动配置即可例如 Spring Boot 2.7spring: autoconfigure: exclude: - org.redisson.spring.starter.RedissonAutoConfigurationV2第二步用 Spring Cache 把 Redis 变成高性能缓存Redisson 提供了多个 Spring Cache Manager 实现开源版即可使用的两个核心选项RedissonSpringCacheManager支持按条目设置 TTL / 最大空闲时间过期条目由 Lua 脚本自动清理RedissonSpringCacheNativeManager利用 Redis 7.4 / Valkey 9.0 原生过期能力无需额外的清理任务更高级的版本Redisson PRO还提供本地缓存near cache和数据分区本地缓存让读操作提速最高45 倍多个实例通过 pub/sub 自动同步失效事件适合读多写少的热点数据场景。快速上手三步走添加redisson-spring-cache依赖社区版 groupId 为org.redisson在配置类上开启EnableCaching注册 Cache Manager指定缓存名和 TTLBean CacheManager cacheManager(RedissonClient redissonClient) { MapString, CacheConfig config new HashMap(); // userCache24 分钟过期最大空闲 12 分钟 config.put(userCache, new CacheConfig(24 * 60 * 1000, 12 * 60 * 1000)); return new RedissonSpringCacheManager(redissonClient, config); }之后业务代码里加上Cacheable(userCache)注解即可缓存逻辑完全透明。完整实现对比与 YAML 配置格式docs/cache/spring-cache.md第三步Spring Session 分布式会话管理多实例部署时用户请求被负载均衡到不同服务器本地内存里的 Session 就失效了。Redisson 的解决方案提供RedissonConnectionFactory让 Spring Session 的会话数据统一存储到 Redis。三种接入方式按项目形态选择接入方式适用场景关键点Spring Boot 配置标准 Boot Web 应用spring.session.store-typeredisEnableRedisHttpSession传统 Servlet 应用继承AbstractHttpSessionApplicationInitializerEnableRedisWebSessionWebFlux 响应式应用继承AbstractReactiveWebInitializerSpring Boot 项目只需三行配置spring: session: store-type: redis timeout: seconds: 900 redis: redisson: file: classpath:redisson.yaml⚠️一个容易踩的坑Spring Session 依赖 Redis 的键空间事件需要确保 Valkey/Redis 的notify-keyspace-events配置中包含Exg三个字母否则会话删除等事件无法传播。Tomcat 用户看这里如果你用的是 Tomcat 容器而非 Spring Boot 内嵌容器Redisson 还提供专门的 redisson-tomcat/ 模块支持 Tomcat 7.x - 11.x特性包括✅非粘性会话用户可路由到任意 Tomcat 实例而不丢失会话SSO 单点登录一行 Valve 配置实现跨应用共享登录态JNDI 共享实例多个 Web 应用共享同一个 Redisson 连接降低资源占用详细参数readMode、updateMode、事件广播等见 docs/web-session-management.md。进阶Redisson 事务管理器Spring 的Transactional默认只管关系型数据库而 Redisson 实现了PlatformTransactionManager和ReactiveTransactionManager接口让 Redis 数据操作也能纳入 Spring 事务——方法内多次 Redis 操作要么全部生效、要么全部回滚通过 Redis 原生 MULTI/EXEC。Bean public RedissonTransactionManager transactionManager(RedissonClient redisson) { return new RedissonTransactionManager(redisson); }实现源码RedissonTransactionManager.java响应式版本见 ReactiveRedissonTransactionManager.java。常见问题速查FAQQ1Starter 装配了哪些 BeanRedissonClient、RedissonRxClient、RedissonReactiveClient、RedisTemplate、ReactiveRedisTemplate、ReactiveRedisOperations开箱即注。Q2Netty 版本冲突怎么办在 Maven 的properties中显式声明netty.version即可覆盖。Q3配置属性前缀是什么自定义属性统一挂在spring.redis.redisson下如file和config见 RedissonProperties.java。Q4想换旧版 spring-data 模块Maven 中排除默认模块再显式引入旧模块例如排除redisson-spring-data-40、引入redisson-spring-data-27完整写法见 docs/integration-with-spring.md 的 Starter 章节。总结Redisson Spring 集成的核心思路就一句话一个 Starter 搞定连接与 Bean 装配Spring Cache / Spring Session / 事务管理器按需叠加。 新项目 → Spring Boot Starter redisson.yaml 热点数据 →RedissonSpringCacheManagerPRO 用户加本地缓存 分布式会话 → Spring Session RedissonTomcat 用户选 redisson-tomcat 模块各模块源码入口redisson-spring/Readme.md Spring Data 适配层redisson-spring/redisson-spring-data/【免费下载链接】redissonRedisson: Valkey Redis Java Client and Real-Time Data Platform. Sync/Async/RxJava/Reactive API. Over 50 Valkey and Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache..项目地址: https://gitcode.com/GitHub_Trending/re/redisson创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考