code: public static ShardedJedisPool newShardedJedisPool(JedisPoolConfig poolConfig,
              String hostsAndPorts, String password, int timeoutMs) {
          List<JedisShardInfo> shards = new ArrayList<>();
          String[] hapList = hostsAndPorts.split("[,;\\s]+");
          for (String hostAndPort : hapList) {
              String[] tokens = hostAndPort.split(":");
              String host = tokens.length > 0 ? tokens[0] : Protocol.DEFAULT_HOST;
              int port = tokens.length > 1 ? Integer.parseInt(tokens[1]) : Protocol.DEFAULT_PORT;
              JedisShardInfo shardInfo = new JedisShardInfo(host, port, timeoutMs);
              shardInfo.setPassword(StringUtils.isBlank(password) ? null : password);
              shards.add(shardInfo);
          }
          ShardedJedisPool jedisPool = new ShardedJedisPool(
                  poolConfig != null ? poolConfig : defaultJedisPoolConfig(), shards);
          return jedisPool;
      }
docs: Create a new {@link ShardedJedisPool}.
  
  @param poolConfig
  format {@code host1:port1,host2:port2,...}, default Redis port is used if not
  specified
  @param password
  @param timeoutMs
  @return