Spring Boot 和 Jedis版本搭配的建议
推荐版本组合
Spring Boot 版本 | Jedis 版本 | 说明 |
---|---|---|
3.1.x | Jedis 4.4.x+ | Spring Boot 3.x 基于 Java 17,需使用 Jedis 4.x(支持 Java 11+)。 |
2.7.x | Jedis 3.9.x | Spring Boot 2.7.x 兼容 Java 8-17,推荐 Jedis 3.9.x(稳定版)。 |
2.6.x 及以下 | Jedis 3.6.x-3.8.x | 旧版 Spring Boot(Java 8 为主),使用 Jedis 3.x 早期版本。 |
详细说明
-
Spring Boot 3.x + Jedis 4.x
- 兼容性:Spring Boot 3.x 要求 Java 17+,Jedis 4.x 是唯一支持 Java 17 的版本。
- 依赖方式:
<!-- Maven --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.4.3</version> <!-- 或最新稳定版 --> </dependency>
- 注意:Spring Boot 3.x 默认使用 Lettuce 作为 Redis 客户端,若要切换到 Jedis,需排除 Lettuce 并显式引入 Jedis:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions> </dependency>
-
Spring Boot 2.7.x + Jedis 3.9.x
- 兼容性:Spring Boot 2.7.x 兼容 Java 8-17,Jedis 3.9.x 支持 Java 8+ 且修复了诸多 bug。
- 依赖方式:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.9.1</version> <!-- 或最新稳定版 --> </dependency>
-
旧版 Spring Boot(2.6.x 及以下)+ Jedis 3.6.x-3.8.x
- 兼容性:Jedis 3.6.x-3.8.x 支持 Java 8,与旧版 Spring Boot 更稳定兼容。
- 依赖方式:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.8.4</version> <!-- 或适合 Java 8 的版本 --> </dependency>
版本选择建议
- 新项目:优先使用 Spring Boot 3.1.x + Jedis 4.4.x(Java 17+),获得最新特性和安全修复。
- 迁移项目:若无法升级 Java,使用 Spring Boot 2.7.x + Jedis 3.9.x(Java 8-17 兼容)。
- 遗留项目:若需严格兼容 Java 8,使用 Spring Boot 2.6.x + Jedis 3.6.x。
其他注意事项
-
连接池配置:
- Jedis 4.x 使用
GenericObjectPoolConfig
,而 Jedis 3.x 使用JedisPoolConfig
。 - 示例配置(Spring Boot 3.x + Jedis 4.x):
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import redis.clients.jedis.JedisPoolConfig;@Configuration public class RedisConfig {@Beanpublic JedisPoolConfig jedisPoolConfig() {JedisPoolConfig poolConfig = new JedisPoolConfig();poolConfig.setMaxTotal(100);poolConfig.setMaxIdle(20);poolConfig.setMinIdle(5);return poolConfig;}@Beanpublic RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) {JedisConnectionFactory factory = new JedisConnectionFactory();factory.setPoolConfig(poolConfig);return factory;} }
- Jedis 4.x 使用
-
替代方案:
- 若 Jedis 兼容性有问题,可考虑使用 Lettuce(Spring Boot 3.x 默认客户端),性能更高且完全异步。
- Lettuce 依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- Lettuce 已默认包含,无需额外引入 -->
根据项目的 Java 版本和需求选择合适的组合,确保版本间兼容且能获得长期支持。