Spring Boot 整合 Redis 缓存服务只需三步:加依赖(spring-boot-starter-data-redis)、配参数(application.yml 中配置 host、port、password 等)、用注解(@EnableCaching + @Cacheable/@CachePut/@CacheEvict);需注意序列化配置、Lettuce 连接池参数及超时设置。

Spring Boot 整合 Redis 缓存服务,核心就三步:加依赖、配参数、用注解。整个过程不复杂,但几个关键点容易出错,比如序列化配置、连接池参数、Lettuce 默认行为等。
添加 Redis 依赖
在 pom.xml 中引入官方 Starter:
<dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-data-redis</artifactid></dependency>
Spring Boot 2.x 起默认使用 Lettuce 客户端(线程安全、支持响应式),无需额外引入 Jedis;如需连接池增强,可选加:
<dependency><groupid>org.apache.commons</groupid><artifactid>commons-pool2</artifactid></dependency>
配置 Redis 连接参数
在 application.yml 中填写基础信息(以本地 Redis 为例):
spring:
redis:
host: localhost
port: 6379
database: 0
password:
timeout: 3000
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: -1ms
注意:
– 若 Redis 有密码,必须填 password,否则连接失败;
– lettuce.pool 配置只在启用连接池时生效(默认开启);
– timeout 是命令执行超时(毫秒),不是连接超时(连接超时由 connect-timeout 控制,可单独配置)。
启用缓存并配置序列化
在启动类或配置类上加 @EnableCaching:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
@SpringBootApplication
@EnableCaching
public class Application { ... }
为避免中文乱码和类型转换异常,建议自定义 RedisTemplate 的序列化器(尤其存储对象时):
- 用
StringRedisSerializer处理 key(保证可读性); - value 推荐用
GenericJackson2JsonRedisSerializer或 FastJSON 序列化器(保留类型信息,避免反序列化失败); - 不要直接用默认的
JdkSerializationRedisSerializer(二进制、不可读、易版本兼容问题)。
用注解快速实现缓存逻辑
在 Service 方法上标注缓存注解,零侵入接入:
-
@Cacheable("users"):方法首次执行后结果存入名为users的缓存区,后续调用直接返回; -
@Cacheable(key = "#id", condition = "#id > 0"):按参数生成 key,并支持条件缓存; -
@CachePut(key = "#user.id"):强制更新缓存(适合修改后同步); -
@CacheEvict(key = "#id"):删除指定 key 的缓存;@CacheEvict(allEntries = true)清空整个 cacheName。
配合 @CacheConfig(cacheNames = "users") 可统一设置类级缓存名,减少重复声明。










