2

Folks,

I have a redis cache connection for my application. Which recently got stalled due to connections increase. So I have implimented connection pooling for my redis connection in my application. The configuration is as below:

@Configuration
public class CacheConfig {

  @Value("${cache.host.name}")
  private String cacheHostName;

  @Value("${cache.database.number}")
  private Integer database;

  @Value("${cache.port.number}")
  private Integer portNumber;

  @Value("${cache.pool.max-total}")
  private Integer maxTotal;

  @Value("${cache.pool.max-idle}")
  private Integer maxIdle;

  @Value("${cache.pool.min-idle}")
  private Integer minIdle;

  @Bean
  JedisConnectionFactory jedisConnectionFactory() {

    RedisStandaloneConfiguration redisConfig =
        new RedisStandaloneConfiguration(cacheHostName, portNumber);
    redisConfig.setDatabase(database);

    JedisConnectionFactory redisConnectionFactory =
        new JedisConnectionFactory(redisConfig, jedisClientConfiguration());

    return redisConnectionFactory;
  }

  @Bean
  JedisClientConfiguration jedisClientConfiguration() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // GenericObjectPoolConfig
    jedisPoolConfig.setMaxTotal(maxTotal);
    jedisPoolConfig.setMaxIdle(maxIdle);
    jedisPoolConfig.setMinIdle(minIdle);
    return JedisClientConfiguration.builder().usePooling().poolConfig(jedisPoolConfig).build();
  }

  @Bean
  public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(jedisConnectionFactory());
    return template;
  }

}

But I'm not able to validate if my configuration is actually in effect. Any suggestion to validate this is appreciated!

Jake
  • 391
  • 1
  • 4
  • 22

0 Answers0