You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重装Ubuntu后Django Celery连接Redis报域名解析临时失败错误

Django+Celery连接Redis报域名解析故障排查方案

故障现象

运行Django项目时触发如下报错:

redis.exceptions.ConnectionError: Error -3 connecting to redis:6379. Temporary failure in name resolution

已知前置状态:

  • 服务器redis.service处于active运行状态,redis-cli可正常连接操作本地Redis
  • 故障在重装Ubuntu系统后出现,重装前同项目可正常运行
  • 初步定位报错触发点为Celery尝试访问redis:6379环节
  • 项目代码中内置的Redis相关配置如下:
CELERY_RESULT_BACKEND = os.environ.get('REDISCLOUD_URL', 'redis://localhost:6379/0')
CACHEOPS_REDIS = os.environ.get('CACHEOPS_REDIS', 'redis://localhost:6379/9')

CACHES = {
    'default': {
        'BACKEND': 'redis_lock.django_cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            'DB': 3,
        }
    }
}

根因判断

报错中实际连接的主机名是redis,和代码默认配置里的localhost/127.0.0.1不符,核心原因是高优先级的环境变量覆盖了代码默认配置:
代码中Celery、CACHEOPS的Redis地址优先读取系统环境变量,重装系统后如果导入了旧的环境变量配置(来自shell配置文件、systemd服务参数、项目env文件、Docker残留配置等),把Redis地址设置为redis://redis:6379/xxx格式,本地/etc/hosts又没有redis主机名对应的解析规则,就会触发域名解析失败错误。

排查步骤

  1. 进入项目运行对应的用户环境,打印相关环境变量确认是否存在错误配置:
echo $REDISCLOUD_URL
echo $CACHEOPS_REDIS
  1. 全局扫描系统配置文件,定位错误地址来源:
sudo grep -r "redis://redis:6379" /etc/ /home/
  1. 若使用systemd管理Celery进程,检查对应服务文件的Environment配置段是否存在错误Redis地址
  2. 检查本地/etc/hosts文件,确认本地回环映射配置正常:
cat /etc/hosts
# 正常配置必须包含以下两行
# 127.0.0.1   localhost
# ::1         localhost

解决方法

  1. 清除错误环境变量:
    • 临时环境变量问题:执行unset REDISCLOUD_URL CACHEOPS_REDIS后重启项目即可
    • 配置文件持久化的错误变量:找到~/.bashrc、~/.profile、/etc/environment、项目.env文件中对应的错误配置行删除,执行source对应文件生效
    • systemd服务配置错误:修改服务文件后执行sudo systemctl daemon-reload,再重启相关服务
  2. 若业务配置必须使用redis作为主机名访问本地Redis,直接在/etc/hosts中添加解析映射:
127.0.0.1   redis
  1. 测试环境可直接修改代码配置,跳过环境变量读取逻辑,硬编码为本地可访问地址,彻底避免覆盖问题:
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'
CACHEOPS_REDIS = 'redis://127.0.0.1:6379/9'
  1. 所有配置修改完成后,重启Celery进程、Django服务,验证连接状态即可。

内容的提问来源于stack exchange,提问作者z.abduev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 04:09:25