You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jedis 4.3.2与Spring Data Redis 3.0.4兼容问题及Java8适配咨询

解决方案

方案1:降级Spring Data Redis到兼容Java8的版本

Spring Data Redis 3.x属于Spring Framework 6.x生态,强制要求Java17及以上。若要保留Java8,需降级到2.x分支的最新稳定版:

  • 选择Spring Data Redis 2.7.12,该版本完全兼容Java8,且能和Jedis 4.3.2(Java8+兼容)搭配使用,可正常获取Jedis的ACL增强功能。
  • 依赖配置示例:
    // Gradle
    implementation 'org.springframework.data:spring-data-redis:2.7.12'
    implementation 'redis.clients:jedis:4.3.2'
    
    <!-- Maven -->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>2.7.12</version>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.3.2</version>
    </dependency>
    

方案2:升级项目Java版本到17(长期最优解)

若团队有版本升级计划,直接将项目JDK切换到17:

  • 调整编译配置:
    // Gradle
    java {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    
    <!-- Maven -->
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
    
  • 确保所有Spring相关依赖对齐到6.x版本,避免混合版本冲突。

方案3:强制替换spring-beans版本(不推荐)

此方法风险极高,Spring 6.x组件依赖Java17特性,强行替换为兼容Java8的旧版spring-beans(如5.3.x)会引发运行时类不兼容、方法缺失等问题。仅作临时验证使用:

// Gradle示例
implementation('org.springframework.data:spring-data-redis:3.0.4') {
    exclude group: 'org.springframework', module: 'spring-beans'
}
implementation 'org.springframework:spring-beans:5.3.30'

内容的提问来源于stack exchange,提问作者Apoorv Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:52:49