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

Spring Data Redis与Jedis兼容性问题:创建JedisConnectionFactory编译报错

解决Spring Data Redis 2.0.6.RELEASE创建JedisConnectionFactory时的JedisShardInfo编译错误

问题原因

你遇到的「无法解析类型redis.clients.jedis.JedisShardInfo」错误,本质是Spring Data Redis 2.0.6.RELEASE与Jedis版本不兼容导致的:

  • Spring Data Redis 2.0.x系列的底层实现依赖Jedis 2.x版本的API,而JedisShardInfo类在Jedis 3.x及以上版本中被移除了。
  • 如果你的项目中引入了过高版本的Jedis(比如3.x+),就会出现这个间接引用缺失的编译错误。

解决方案

1. 对齐Jedis依赖版本

Spring Data Redis 2.0.6.RELEASE官方适配的Jedis版本是2.9.3,你需要在项目中明确指定这个版本:

  • Maven项目(pom.xml):
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>2.0.6.RELEASE</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.3</version>
</dependency>
  • Gradle项目(build.gradle):
implementation 'org.springframework.data:spring-data-redis:2.0.6.RELEASE'
implementation 'redis.clients:jedis:2.9.3'

2. 排除冲突的Jedis依赖

如果你的项目中其他依赖间接引入了更高版本的Jedis(比如3.x),需要手动排除冲突版本,再引入正确的2.9.3版本:

  • Maven示例:
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>2.0.6.RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 手动引入兼容版本 -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.3</version>
</dependency>

3. 验证修复

完成依赖调整后,重新编译项目,你之前的代码片段就能正常运行了:

RedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration(clusterList);
return new JedisConnectionFactory(clusterConfiguration);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:54:05