我有一个使用 django-redis 3.8.0 的 django 项目连接到 redis 的 aws 实例。但是,我在尝试连接时收到ConnectionError: Error 111 connecting to None:6379. Connection refused.
。如果我 ssh 到我的 ec2 并使用 shell 中的 redis-py,我能够很好地从缓存中读取和写入,所以我认为这不是安全策略问题。
好的,想通了。我需要做的是在我的位置前面加上redis://
。这是特定于 django-redis 库以及它如何解析位置 url。这就解释了为什么当我使用 python redis 库手动设置 StrictRedis 连接时,我能够连接。
如果您正在运行弹性缓存 redis,则无法从 AWS 外部访问它 - 这就是您收到错误的原因。
来自 AWS 常见问题解答:
请注意,基于 IP 范围的访问控制目前不是 为缓存群集启用。缓存群集的所有客户端都必须是 在 EC2 网络中,并通过安全组授权为 上述。
http://aws.amazon.com/elasticache/faqs/