首页 > 解决方案 > 使用 java Jedis 连接到 aws elasticache redis

问题描述

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

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

然后我想在我的 spring boot 应用程序中使用 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 的建议吗?

谢谢,

彼得

标签: amazon-web-servicesspring-bootredisjedisamazon-elasticache

解决方案


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

我遇到的另一个问题是“主机名”部分中的空格或其他空白字符(尽管我看到您上面的示例没有这个问题)但仍然只是指出它。


推荐阅读