首页 > 解决方案 > 错误:Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379 Heroku

问题描述

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

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

标签: node.jsherokuredis

解决方案


您收到该错误是因为您首先尝试使用redis.createClient(). 默认情况下,它将连接到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()
}

推荐阅读