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 早期版本。

详细说明

  1. Spring Boot 3.x + Jedis 4.x

    • 兼容性:Spring Boot 3.x 要求 Java 17+,Jedis 4.x 是唯一支持 Java 17 的版本。
    • 依赖方式
      
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-data-redisartifactId>
      dependency>
      <dependency>
          <groupId>redis.clientsgroupId>
          <artifactId>jedisartifactId>
          <version>4.4.3version> 
      dependency>
      
    • 注意:Spring Boot 3.x 默认使用 Lettuce 作为 Redis 客户端,若要切换到 Jedis,需排除 Lettuce 并显式引入 Jedis:
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-data-redisartifactId>
          <exclusions>
              <exclusion>
                  <groupId>io.lettucegroupId>
                  <artifactId>lettuce-coreartifactId>
              exclusion>
          exclusions>
      dependency>
      
  2. 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.bootgroupId>
          <artifactId>spring-boot-starter-data-redisartifactId>
      dependency>
      <dependency>
          <groupId>redis.clientsgroupId>
          <artifactId>jedisartifactId>
          <version>3.9.1version> 
      dependency>
      
  3. 旧版 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.bootgroupId>
          <artifactId>spring-boot-starter-data-redisartifactId>
      dependency>
      <dependency>
          <groupId>redis.clientsgroupId>
          <artifactId>jedisartifactId>
          <version>3.8.4version> 
      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

其他注意事项

  1. 连接池配置

    • 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 {
          @Bean
          public JedisPoolConfig jedisPoolConfig() {
              JedisPoolConfig poolConfig = new JedisPoolConfig();
              poolConfig.setMaxTotal(100);
              poolConfig.setMaxIdle(20);
              poolConfig.setMinIdle(5);
              return poolConfig;
          }
      
          @Bean
          public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) {
              JedisConnectionFactory factory = new JedisConnectionFactory();
              factory.setPoolConfig(poolConfig);
              return factory;
          }
      }
      
  2. 替代方案

    • 若 Jedis 兼容性有问题,可考虑使用 Lettuce(Spring Boot 3.x 默认客户端),性能更高且完全异步。
    • Lettuce 依赖:
      <dependency>
          <groupId>org.springframework.bootgroupId>
          <artifactId>spring-boot-starter-data-redisartifactId>
      dependency>
      
      

根据项目的 Java 版本和需求选择合适的组合,确保版本间兼容且能获得长期支持。

你可能感兴趣的:(spring-boot,redis,spring,boot,后端,java)