我在服务器上有以下连接字符串:
val connStr = "redis://redistogo:fd578d89004321fe@tarpon.redistogo.com:10333/"我必须使用的redis客户端没有适合这个连接字符串的构造函数,它只有一个构造函数,分别具有主机和端口:
class SomeRedisClient(val host: String, val port: Int) { ...。以下代码也不起作用:
val url = new java.net.URL(connStr)错误- java.net.MalformedURLException: unknown protocol: redis
如何解析此连接字符串以将其传递给redis的构造函数?
附注:我不被允许挑选其他redis客户。
发布于 2013-11-21 17:09:42
使用URI
String connStr = "redis://redistogo:fd578d89004321fe@tarpon.redistogo.com:10333/";
URI uri = new URI(connStr);
System.out.println(uri.getScheme());
System.out.println(uri.getHost());
System.out.println(uri.getPort());
String connStrWithoutPort = connStr.replace(":" + uri.getPort(), "");
System.out.println(connStrWithoutPort);
// or a more safe version (because the user info part might contain a
// password that matches the port, e.g.
// redis://redistogo:10333@tarpon.redistogo.com:10333/
StringBuilder withoutPort = new StringBuilder();
withoutPort.append(uri.getScheme());
withoutPort.append("://");
String userInfo = uri.getUserInfo();
if (userInfo != null) {
withoutPort.append(userInfo);
withoutPort.append("@");
}
withoutPort.append(uri.getHost());
String withoutPortString = withoutPort.toString();https://stackoverflow.com/questions/20116508
复制相似问题