如何将Python项目连接Redis Cloud?连接失败问题求助
Redis Cloud连接失败:getaddrinfo EAI_AGAIN/11002 问题排查方案
问题现象
本地Docker运行Redis正常,但连接Redis Cloud时出现以下错误:
- Python项目报错:
2/23/2024, 11:40:04 AM | ERROR | DatabaseService | Failed to add database. | {"stack":[{"message":"getaddrinfo EAI_AGAIN redis-18108.c299.asia-northeast1-1.gce.cloud.redislabs.com"}]} - redis-cli连接报错:
Error 11002 connecting to redis-18108.c299.asia-northeast1-1.gce.cloud.redislabs.com:18108. getaddrinfo failed. - 使用
redis-cli -u redis://default:******@redis-18108.c299.asia-northeast1-1.gce.cloud.redislabs.com:18018仍无法连接
排查与解决步骤
1. 核对端口一致性
错误日志中显示的连接端口是18108,但你使用的连接命令里端口是18018,端口不匹配是常见的连接失败原因。请登录Redis Cloud控制台,确认实例的实际端口号,确保Python项目配置和redis-cli命令中的端口完全一致。
2. 清空本地DNS缓存
虽然nslookup能解析域名,但系统或应用的DNS缓存可能存在异常:
- 以管理员身份打开命令提示符,执行:
ipconfig /flushdns - 重启Python项目和redis-cli,重新尝试连接。
3. 直接使用IP地址测试连接
通过nslookup获取域名对应的IP,绕开域名解析环节测试:
- 执行命令获取IP:
nslookup redis-18108.c299.asia-northeast1-1.gce.cloud.redislabs.com - 使用IP直接连接:
redis-cli -h <获取到的IP地址> -p <正确端口> -a <你的Redis密码> - 如果IP连接成功,可尝试在Windows hosts文件中添加映射:
打开C:\Windows\System32\drivers\etc\hosts,添加一行:<IP地址> redis-18108.c299.asia-northeast1-1.gce.cloud.redislabs.com
4. 检查防火墙与代理设置
- 临时关闭Windows防火墙,测试是否能连接。如果关闭后正常,需在防火墙中添加redis-cli和Python程序的出站允许规则。
- 若使用了代理服务器,确认代理配置正确,或尝试关闭代理后重试连接。
5. 确认Redis Cloud的IP白名单
登录Redis Cloud控制台,检查实例的IP访问控制列表,确保当前设备的公网IP已添加到白名单中。如果开启了IP限制,未授权的IP会被拒绝连接。
内容的提问来源于stack exchange,提问作者Khirokhito
相关产品推荐
相关产品推荐

