【问题标题】:Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 Heroku错误:Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379 Heroku
【发布时间】:2020-08-27 19:19:27
【问题描述】:

我创建了一个使用 Redis 的 Nodejs 服务器。当我在我的机器上运行它时它运行良好。但是当我尝试将代码推送到heroku时出现上述错误。我已经安装了 Redis togo,我可以在我的配置变量中看到 REDISTOGO_URL

按照我所做的一些 Stackoverflow 帖子:

let RedisStore = require('connect-redis')(session)

let redisClient = redis.createClient()
if(process.env.REDISCLOUD_URL){
    let redisURL = url.parse(process.env.REDISCLOUD_URL);
    redisClient = redis.createClient(redisURL)
}

我的应用程序在开发中运行良好,但是当我尝试在 heroku 中启动我的应用程序时,当我执行 heroku logs --tail 时出现以下错误:

错误:Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379

【问题讨论】:

    标签: node.js heroku redis


    【解决方案1】:

    您收到该错误是因为您首先尝试使用 redis.createClient() 创建 redis 客户端。默认连接到127.0.0.1:6379

    它在 localhost 上运行良好,因为它不会进入 if (process.env.REDISCLOUD_URL 并且本地 redis 可用。

    要解决这个问题,

    let redisClient
    if(process.env.REDISCLOUD_URL){
        let redisURL = url.parse(process.env.REDISCLOUD_URL);
        redisClient = redis.createClient(redisURL)
    } else {
        redisClient = redis.createClient()
    }
    

    【讨论】:

    • 我还必须将变量更改为REDISGO_URL。我还必须删除url.parse
    【解决方案2】:

    您的代码似乎需要一个 REDISCLOUD_URL 环境变量。如果您定义了REDISTOGO_URL,那么这就解释了它为什么不起作用。

    【讨论】:

    • 你是对的。我不得不使用这两个答案来解决这个问题。我还必须删除 url.parse 并执行 redisClient = redis.createClient(process.env.REDISTOGO_URL)
    猜你喜欢
    • 2017-05-16
    • 2017-07-06
    • 2023-03-18
    • 1970-01-01
    • 2019-01-03
    • 2022-08-21
    • 2020-07-20
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多