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

如何解决Adonis 4.1本地运行时[ioredis]连接ECONNREFUSED错误?

解决Adonis 4.1访问时Redis连接被拒绝(ECONNREFUSED 127.0.0.1:6379)的问题

问题场景

本地运行Adonis 4.1项目,执行adonis serve --dev后服务启动正常:

SERVER STARTED 
> Watching files for changes...

info: serving app on http://127.0.0.1:3333

但访问http://127.0.0.1:3333时触发Redis连接错误:

[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1247:16)

解决方案

  • 检查Redis服务是否启动
    本地Redis未运行是最常见原因:

    • Windows:打开Redis安装目录运行redis-server.exe,或在系统服务列表中找到Redis服务,设置为自动启动并启动它。
    • macOS/Linux:执行redis-server启动服务,或用systemctl start redis通过系统服务管理启动。
      启动后执行redis-cli ping测试,返回PONG说明服务正常。
  • 验证Adonis的Redis配置
    打开项目根目录下的config/redis.js,确认配置与本地Redis服务匹配:

    module.exports = {
      connection: 'local',
      local: {
        host: process.env.REDIS_HOST || '127.0.0.1',
        port: process.env.REDIS_PORT || 6379,
        password: process.env.REDIS_PASSWORD || null,
        db: process.env.REDIS_DB || 0,
        keyPrefix: ''
      }
    }
    

    同时检查.env文件中的REDIS_HOST、REDIS_PORT等环境变量是否正确,若Redis设置了密码,需填写对应password值。

  • 检查Redis端口是否被占用
    若6379端口被其他程序占用,Redis无法启动:

    • Windows:执行netstat -ano | findstr :6379找到占用进程的PID,结束对应进程;或修改Redis配置文件redis.conf中的port值,同步更新Adonis的redis.js配置。
    • macOS/Linux:执行lsof -i :6379查看占用进程,杀掉进程或修改端口。
  • 添加Redis错误监听(可选)
    为避免单个Redis连接错误导致服务崩溃,可在start/app.js中添加错误监听:

    const Redis = use('Redis')
    Redis.on('error', (error) => {
      console.error('Redis连接错误:', error.message)
      // 可在此添加重试逻辑或其他处理
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:48:16