目前,我正在使用jedis连接到本地redis服务器,使用:pool = new JedisPool("redis://localhost:6379/10");
然后我想用ElasticacheRedis代替我的SpringBoot应用程序。我得到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.(BinaryJedis.java:31)
at redis.clients.jedis.Jedis.(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.(URI.java:588)
at java.net.URI.create(URI.java:850)
... 3 more
有没有专家能给我一些建议,告诉我如何用绝地来连接到Elasticache Redis?
谢谢,
彼得
最佳答案
我遇到了一个类似的问题,我相信问题是你的ELB主机名中有一个破折号,或者我打赌还有另一个特殊的字符。您可能需要使用route53为它创建一个别名来解决这个问题。
我遇到的另一个问题是“hostname”部分中的空格或其他空白字符(尽管我看到上面的示例没有这个问题),但仍然只是指出它。