code: public static <K, V> CompletableFuture<StatefulRedisMasterSlaveConnection<K, V>> connectAsync(RedisClient redisClient,
              RedisCodec<K, V> codec, RedisURI redisURI) {
          return transformAsyncConnectionException(connectAsyncSentinelOrAutodiscovery(redisClient, codec, redisURI), redisURI);
      }
docs: Open asynchronously a new connection to a Redis Master-Slave server/servers using the supplied {@link RedisURI} and the
  supplied {@link RedisCodec codec} to encode/decode keys.
  <p>
  This {@link MasterSlave} performs auto-discovery of nodes using either Redis Sentinel or Master/Slave. A {@link RedisURI}
  can point to either a master or a replica host.
  </p>
  
  @param redisClient the Redis client.
  @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 CompletableFuture} that is notified once the connect is finished.
  @since