使用java Jedis连接到aws elasticache redis

Use java Jedis connect to aws elasticache redis

目前我正在使用 jedis 连接到我的本地 redis 服务器:

pool = new JedisPool("redis://localhost:6379/10");

然后我想为我的 spring 启动应用程序使用 elasticache redis。我得到 elasticache redis 的主要端点是 aws 控制台:

*****.7xxpzn.ng.0001.use2.cache.amazonaws.com:6379

我尝试使用以下方式连接到 redis:

pool = new JedisPool("*****.7xxpzn.ng.0001.use2.cache.amazonaws.com:6379");

但是它抛出错误:

Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in authority at index 8: redis://*****.7xxpzn.ng.0001.use2.cache.amazonaws.com:6379

at java.net.URI.create(URI.java:852)
at redis.clients.jedis.BinaryJedis.<init>(BinaryJedis.java:31)
at redis.clients.jedis.Jedis.<init>(Jedis.java:26)
at com.quora.util.JedisAdapter.main(JedisAdapter.java:32)

Caused by: java.net.URISyntaxException: Illegal character in authority at index 8: redis://*****.7xxpzn.ng.0001.use2.cache.amazonaws.com:6379

at java.net.URI$Parser.fail(URI.java:2848)
at java.net.URI$Parser.parseAuthority(URI.java:3186)
at java.net.URI$Parser.parseHierarchical(URI.java:3097)
at java.net.URI$Parser.parse(URI.java:3053)
at java.net.URI.<init>(URI.java:588)
at java.net.URI.create(URI.java:850)
... 3 more

哪位专家可以给我一些关于如何使用 jedis 连接到 elasticache redis 的建议?

谢谢,

彼得

我 运行 遇到了类似的问题,我认为问题在于您的 ELB 主机名中有破折号或我敢打赌的其他特殊字符。您可能必须使用 route53 通过为其创建别名来解决此问题。

我 运行 遇到的另一个问题是 "hostname" 部分中的 space 或其他白色 space 字符(尽管我看到上面的示例没有有那个问题)但仍然只是指出它。