错误:Redis与127.0.0.1:6379的连接失败-连接ECONNREFUSED 127.0.0.1:6379 Heroku

时间:2020-05-12 03:44:02

标签: node.js heroku redis

我创建了一个使用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

2 个答案:

答案 0 :(得分:2)

您遇到此错误是因为您首先尝试使用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()
}

答案 1 :(得分:1)

您的代码似乎期望使用REDISCLOUD_URL环境变量。如果您定义了REDISTOGO_URL,那么这将解释为什么它不起作用。