code: public <K, V> ConnectionFuture<StatefulRedisPubSubConnection<K, V>> connectPubSubAsync(RedisCodec<K, V> codec,
              RedisURI redisURI) {
  
          assertNotNull(redisURI);
          return transformAsyncConnectionException(connectPubSubAsync(codec, redisURI, redisURI.getTimeout()));
      }
docs: Open asynchronously a new pub/sub connection to the Redis server using the supplied {@link RedisURI} and use the supplied
  {@link RedisCodec codec} to encode/decode keys and values.
  
  @param codec Use this codec to encode/decode keys and values, must not be {@literal null}
  @param redisURI the redis server to connect to, must not be {@literal null}
  @param <K> Key type
  @param <V> Value type
  @return {@link ConnectionFuture} to indicate success or failure to connect.
  @since 5.0