title: Unable to connect to redis cluster, spring webflux reactive: Connection refused
body: <p>I am trying to connect to redis in reactive spring boot, below is the configuration I am using but getting connection refuse error. This works correctly on non-reactive version with jedis connection.</p>
  <p>This is the configuration class
  I this I am trying to create ReactiveRedisConnectionFactory with cluster config with pooling details.</p>
  <pre><code>public class ReactiveRedisConfiguration {
  
      private final RedisConfigurationProperties redisConfigurationProperties;
  
  
      @Autowired
      public ReactiveRedisConfiguration(RedisConfigurationProperties redisConfigurationProperties) {
          this.redisConfigurationProperties = redisConfigurationProperties;
      }
  
      @Bean
      public ReactiveRedisConnectionFactory reactiveRedisConnectionFactory(RedisConfiguration defaultRedisConfig) {
  
          LettucePoolingClientConfiguration lettucePoolingClientConfiguration = LettucePoolingClientConfiguration.builder()
                  .commandTimeout(Duration.ofSeconds(10))
                  .shutdownTimeout(Duration.ofSeconds(10))
                  .poolConfig(buildGenericPoolConfig())
                  .build();
  
          LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(defaultRedisConfig, lettucePoolingClientConfiguration);
          lettuceConnectionFactory.setShareNativeConnection(false);
  
          return lettuceConnectionFactory;
      }
  
      @Bean
      public RedisConfiguration defaultRedisConfig() {
          RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
          redisClusterConfiguration.setClusterNodes(getClusterNodes(redisConfigurationProperties.getHostAndPort()));
          redisClusterConfiguration.setPassword(RedisPassword.of(redisConfigurationProperties.getPassword()));
          return redisClusterConfiguration;
      }
  
      private GenericObjectPoolConfig&lt;String&gt; buildGenericPoolConfig() {
          GenericObjectPoolConfig&lt;String&gt; poolConfig = new GenericObjectPoolConfig&lt;&gt;();
          poolConfig.setMaxTotal(redisConfigurationProperties.getMaxTotal());
          poolConfig.setMaxIdle(redisConfigurationProperties.getMaxIdle());
          poolConfig.setMinIdle(redisConfigurationProperties.getMinIdle());
          poolConfig.setTestOnBorrow(redisConfigurationProperties.isTestOnBorrow());
          poolConfig.setTestWhileIdle(redisConfigurationProperties.isTestOnReturn());
          poolConfig.setMaxWait(Duration.ofMillis(redisConfigurationProperties.getMaxWait()));
          return poolConfig;
      }
  }
  </code></pre>
  <p>Getting below exception while redis is trying to connect.</p>
  <pre><code>2022-03-02 18:46:25,137 [ioEventLoop-7-7] WARN  i.l.c.c.t.DefaultClusterTopologyRefresh  [lambda$openConnections$11]   : 347 - Unable to connect to [10.64.95.30/&lt;unresolved&gt;:6378]: Connection refused: /10.64.95.30:6378
  2022-03-02 18:46:26,155 [oundedElastic-1] WARN  .s.b.a.h.AbstractReactiveHealthIndicator [handleFailure]   : 89 - Redis health check failed
  org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost/&lt;unresolved&gt;:6379
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.translateException(LettuceConnectionFactory.java:1689) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1597) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1383) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1366) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedReactiveConnection(LettuceConnectionFactory.java:1117) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:509) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:103) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:86) ~[reactor-core-3.4.13.jar:3.4.13]
      at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:227) [reactor-core-3.4.13.jar:3.4.13]
      at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) [reactor-core-3.4.13.jar:3.4.13]
      at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) [reactor-core-3.4.13.jar:3.4.13]
      at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) [?:?]
      at java.util.concurrent.FutureTask.run(FutureTask.java) [?:?]
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
      at java.lang.Thread.run(Thread.java:831) [?:?]
  Caused by: org.springframework.data.redis.connection.PoolException: Could not get a resource from the pool; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost/&lt;unresolved&gt;:6379
      at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.getConnection(LettucePoolingConnectionProvider.java:109) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1595) ~[spring-data-redis-2.6.0.jar:2.6.0]
      ... 15 more
  Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to localhost/&lt;unresolved&gt;:6379
      at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:330) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at io.lettuce.core.RedisClient.connect(RedisClient.java:216) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at java.util.Optional.orElseGet(Optional.java:364) ~[?:?]
      at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.lambda$null$0(LettucePoolingConnectionProvider.java:97) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:211) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:201) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:70) ~[commons-pool2-2.11.1.jar:2.11.1]
      at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571) ~[commons-pool2-2.11.1.jar:2.11.1]
      at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298) ~[commons-pool2-2.11.1.jar:2.11.1]
      at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223) ~[commons-pool2-2.11.1.jar:2.11.1]
      at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:122) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:117) ~[lettuce-core-6.1.5.RELEASE.jar:6.1.5.RELEASE]
      at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.getConnection(LettucePoolingConnectionProvider.java:103) ~[spring-data-redis-2.6.0.jar:2.6.0]
      at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1595) ~[spring-data-redis-2.6.0.jar:2.6.0]
      ... 15 more
  Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:6379
  Caused by: java.net.ConnectException: Connection refused
      at sun.nio.ch.Net.pollConnect(Native Method) ~[?:?]
      at sun.nio.ch.Net.pollConnectNow(Net.java:669) ~[?:?]
      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:944) ~[?:?]
      at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:710) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
      at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.72.Final.jar:4.1.72.Final]
      ... 1 more
  </code></pre>