我是Redis和Amazon MemoryDB的新手,目前我可以使用Amazon MemoryDB启动Redis集群,遵循aws document。redis-cli
用于链接到我的redis集群(从VPC内的另一个EC2示例):
>> redis-cli -c --tls -h my-redis-cluster.idocmu.memorydb.us-west-2.amazonaws.com -p 6379
my-redis-cluster.idocmu.memorydb.us-west-2.amazonaws.com:6379> PING
PONG
当我尝试在同一个EC2示例中使用python/Java连接到它时,连接始终不起作用:
>> python3
Python 3.7.16 (default, Dec 15 2022, 23:24:54)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-15)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
>>> r = redis.RedisCluster(host="my-redis-cluster.idocmu.memorydb.us-west-2.amazonaws.com", port=6379)
... python3 fronzen here...
Jedis Java客户端也是如此:
import redis.clients.jedis.Jedis;
Jedis jedis = new Jedis("my-redis-cluster.idocmu.memorydb.us-west-2.amazonaws.com", 6379);
jedis.set("key100", "value100");
... java connection timeout here...
我错过了什么吗?为什么redis-cli可以连接而我的脚本不能?
还尝试了Redis页面中列出的一些其他客户端:https://redis.io/resources/clients/ Redission也无法连接。看起来我的设置有问题。但是我不明白为什么redis-cli可以连接。
1条答案
按热度按时间fruv7luv1#
这是因为当您使用
recis-cli
连接时,您提供了--tls
(意味着您的集群配置了传输中加密)。但是,当您连接其他客户端时,您不使用TLS。例如,为了连接
redis-py
,您需要提供ssl=True
:参见示例here。