This my dependency for spring data redis

   <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.2.0</version>
    </dependency>

The spring boot version(same for spring data redis) is 2.4.5 and jedis version is 3.2.0

The thing is jedis connection is not happening.

 @Bean public JedisClientConfiguration getJedisClientConfiguration() {
    JedisClientConfiguration.JedisClientConfigurationBuilder builder = JedisClientConfiguration .builder();
    GenericObjectPoolConfig GenericObjectPoolConfig = new GenericObjectPoolConfig();
    GenericObjectPoolConfig.setMaxTotal(maxConnection);
    GenericObjectPoolConfig.setMaxIdle(maxConnectionIdle);
    GenericObjectPoolConfig.setMinIdle(minConnectionIdle);
    return builder.usePooling().poolConfig(GenericObjectPoolConfig).build(); }
@Bean
public RedisConnectionFactory redisConnectionFactory() {
    RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(redisHost, redisPort);
    redisStandaloneConfiguration.setPassword(redisPassword);
    return new JedisConnectionFactory(redisStandaloneConfiguration, getJedisClientConfiguration());
}

I am getting this error during bean initialisation

 Error creating bean with name 'redisConnectionFactory' defined in class path resource [com/freshworks/ces/common/config/RedisConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: 'void redis.clients.jedis.JedisPool.<init>(org.apache.commons.pool2.impl.GenericObjectPoolConfig, java.lang.String, int, int, int, java.lang.String, java.lang.String, int, java.lang.String, boolean, javax.net.ssl.SSLSocketFactory, javax.net.ssl.SSLParameters, javax.net.ssl.HostnameVerifier)'
Caused by: java.lang.NoSuchMethodError: 'void redis.clients.jedis.JedisPool.<init>(org.apache.commons.pool2.impl.GenericObjectPoolConfig, java.lang.String, int, int, int, java.lang.String, java.lang.String, int, java.lang.String, boolean, javax.net.ssl.SSLSocketFactory, javax.net.ssl.SSLParameters, javax.net.ssl.HostnameVerifier)

I have added apache common pool packages too. But still doesn't work.

The connection gets succeeded with jedis 3.3.0 but I need to use 3.2.0 because I have other modules dependent on this version.

Why the connection doesn't work with 3.2.0. Can we have any doc or site that tells about which jedis version have to used for appropriate spring data redis.

Comment From: wilkinsona

It doesn’t work with Jedis 3.2 as the version of Spring Data Redis that you are using calls a method that was added in Jedis 3.3.

Can we have any doc or site that tells about which jedis version have to used for appropriate spring data redis

I think this is a good suggestion. Please raise it with the Spring Data Redis team here.