当我在gradle.build中将jedis升级到版本4.2.3时:
api "redis.clients:jedis:4.2.3"
显示错误:
/Users/xiaoqiangjiang/source/reddwarf/backend/retire/dolphin-common/src/main/java/misc/config/redis/RedisConfig.java:77: error: cannot access JedisShardInfo
return new JedisConnectionFactory(redisConfig);
^
class file for redis.clients.jedis.JedisShardInfo not found
这是 redis 配置:
@Bean
public JedisConnectionFactory redisConnectionFactory() {
var redisConfig = new RedisStandaloneConfiguration(redisHost, redisPort);
redisConfig.setPassword(redisPwd);
return new JedisConnectionFactory(redisConfig);
}
为什么会出现这个错误?我应该做什么来修复它?我从谷歌搜索似乎没有人遇到这个问题。
类
JedisShardInfo
自 Jedis 4 起已被删除。
ShardedJedisPool、Sharded、ShardedJedis、BinaryShardedJedis、ShardInfo、JedisShardInfo 类已被删除。
使用此依赖3.9.0以下版本,因为新版本中已经删除了一些类。
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.9.0</version>
</dependency>
注意: SNAPSHOT、M1、M2、M3 和 M4 版本通常正在进行中。 Spring 团队仍在研究它们,建议不要使用它们。
部分课程已被删除, 所以使用 Jedis 版本:3.9.0
按照下面更改版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.redis.sprinboot</groupId>
<artifactId>redis-springboot-mysql</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>redis-springboot-mysql</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<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.0</version>
</dependency>
</dependencies>