5

when I upgrade the jedis to version 4.2.3 in gradle.build:

    api "redis.clients:jedis:4.2.3"

show error:

/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

this is the redis config:

    @Bean
    public JedisConnectionFactory redisConnectionFactory() {
        var redisConfig = new RedisStandaloneConfiguration(redisHost, redisPort);
        redisConfig.setPassword(redisPwd);
        return new JedisConnectionFactory(redisConfig);
    }

why did this error happen? what should I do to fix it? I have searched from google seems no one facing this problem.

Dolphin
  • 29,069
  • 61
  • 260
  • 539

3 Answers3

5

The class JedisShardInfo is removed since Jedis 4.

The ShardedJedisPool, Sharded, ShardedJedis, BinaryShardedJedis, ShardInfo, JedisShardInfo classes have been removed.

Here is the list of all breaking changes between Jedis 3.x and Jedis 4.x.

sazzad
  • 5,740
  • 6
  • 25
  • 42
  • 2
    ok, but why newest spring-data-redis 2.6.4 JedisConnectionFactory, still uses `JedisShardInfo` ... ? error: cannot access JedisShardInfo return new JedisConnectionFactory(connectionConfig); – razor May 12 '22 at 09:59
2

Use this dependency 3.9.0 or less version, because Some of the classes have been removed in the new version.

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.9.0</version>
</dependency>

Note: SNAPSHOT, M1, M2, M3, and M4 releases typically WORK IN PROGRESS. The Spring team is still working on them, Recommend NOT using them.

Fazal Haroon
  • 845
  • 2
  • 10
  • 20
1

Some of the classes have been removed, so use Jedis version: 3.9.0

NXT Dev
  • 71
  • 4