我在本地和 aws elasticache 上都安装了 Redis chace。我的 Django 项目在带有 Redis 的本地机器上运行良好。但是,当我在 aws 上远程连接到我的 redis 时,出现以下错误。
Error 10060 connecting to xyz.0001.use2.cache.amazonaws.com:6379. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
我对本地 redis 有以下 Django 设置:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
这是远程 redis 实例的 Django 设置:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://xyz.0001.use2.cache.amazonaws.com:6379',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
同样,当我从本地缓存设置切换到远程缓存设置时,我得到了上面的错误。
我知道除非您有 vpn 连接,否则无法在 AWS 外部连接 ElastiCache。因此,我在 aws 上设置了 vpn 客户端端点并使用 aws vpn 客户端连接到它。我可以通过 vpn 成功连接,如下所示。
此外,如果我在命令提示符窗口的 C:\Program Files\Redis 下运行以下命令
redis-cli -h magicstat-redis.ysw0xy.0001.use2.cache.amazonaws.com -p 6379 ping
知道为什么即使我可以通过 vpn 连接,我仍然无法从本地计算机连接到 aws elasticache 上的远程 redis?