三步即可让spring boot项目连上redis:添加spring-boot-starter-data-redis依赖、配置spring.data.redis.*参数(含host/port/password/database及lettuce连接池)、选用stringredistemplate或自定义redistemplate并配置jackson序列化。

直接加依赖、配参数、注入模板类,三步就能让 Spring Boot 项目连上 Redis 并开始读写。关键不是“能不能用”,而是配置对不对、模板选得准不准、序列化设得稳不稳。
添加起步依赖
在 pom.xml 中引入官方 starter,它已内置 Lettuce 客户端和自动配置逻辑:
- Spring Boot 2.0+ 和 3.x 均默认使用 Lettuce(线程安全、基于 Netty),无需额外引
lettuce-core,starter 已包含 - 不要手动添加
jedis依赖——Spring Boot 3.x 已移除 Jedis 自动装配支持,混用会导致redisConnectionFactory创建失败 - 正确写法:
<dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-data-redis</artifactid></dependency>
配置连接参数(注意 Spring Boot 3.x 的变化)
Spring Boot 3.x 统一使用 spring.data.redis.* 前缀,旧的 spring.redis.* 已废弃:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 必须配全基础字段:host、port、password(如有)、database
- 密码含特殊字符(如
@、/)时,需做 URL 编码(例如pass@123→pass%40123) - 示例(application.yml):
spring:
data:
redis:
host: 192.168.1.100
port: 6379
password: mypass123
database: 0
# 连接池配置(Lettuce)
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 2000ms
选用合适的操作模板
别直接用默认的 RedisTemplate<object object></object>,它用 JDK 序列化,存字符串也会变乱码、跨语言不可读:
- 纯字符串操作 → 用 StringRedisTemplate(key 和 value 都是 String,UTF-8 序列化,开箱即用)
- 存 JSON 对象(如 User)→ 自定义
RedisTemplate<string user></string>,value 用Jackson2JsonRedisSerializer - 需要泛型反序列化时,务必配置
ObjectMapper启用 DefaultTyping,否则 List - 不建议一个模板混存多种 value 类型(String / Integer / User),易触发 ClassCastException
验证是否生效
启动应用后检查日志是否有 RedisConnectionConfiguration 或 RedisAutoConfiguration 成功加载;代码中注入并测试:
@Autowired
private StringRedisTemplate stringRedisTemplate;
<p>public void test() {
stringRedisTemplate.opsForValue().set("test:key", "hello redis");
String val = stringRedisTemplate.opsForValue().get("test:key");
System.out.println(val); // 输出 hello redis
}</p>
若报 Cannot resolve reference to bean 'redisConnectionFactory',优先排查:配置前缀是否为 spring.data.redis.*、password 是否遗漏或未编码、是否误排除了 RedisAutoConfiguration。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










