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

Celery连接Redis失败求助:无法连接redis://redis:6379/0

解决Celery连接Redis主机名解析错误的方案

核心问题分析

你的配置里broker用了redis://redis:6379/0,但本地系统无法将redis这个主机名解析到运行Redis的IP地址(你本地Redis实际在127.0.0.1/localhost),这是导致连接失败的直接原因。

具体解决方法

方法一:统一使用本地可解析的Redis地址

修改tasks.py中的Celery配置,将broker和result_backend都设置为本地Redis的地址:

# tasks.py中的配置部分
app = Celery('tasks',
             broker='redis://127.0.0.1:6379/0',
             result_backend='redis://127.0.0.1:6379/0')

也可以用localhost替代127.0.0.1,因为你已经验证过redis-cli能连接这个地址。修改完成后重新启动Celery worker即可。

方法二:配置本地hosts映射(保留redis主机名)

如果坚持要使用redis作为主机名,需要在本地hosts文件中添加映射规则:

  • Linux/macOS:编辑/etc/hosts文件,添加一行:
    127.0.0.1 redis
    
  • Windows:打开C:\Windows\System32\drivers\etc\hosts文件(需管理员权限),添加同样内容。

添加完成后,先执行ping redis验证主机名是否能解析到127.0.0.1,再重启Celery worker。

验证步骤

  1. 修改配置或hosts后,执行redis-cli -h redis ping,返回PONG说明主机名解析正常。
  2. 重新启动Celery worker:celery -A tasks worker --loglevel=INFO --concurrency=5,此时应能正常连接Redis。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:57:06