![](/img/trans.png)
[英]Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
[英]Error: Redis connection to 127.0.0.1:6379 failed - connect 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
時出現以下錯誤:
錯誤:Redis 連接到 127.0.0.1:6379 失敗 - 連接 ECONNREFUSED 127.0.0.1:6379
您收到該錯誤是因為您首先嘗試使用redis.createClient()
創建 redis 客戶端。 默認情況下,它將連接到127.0.0.1:6379
。
它在本地主機上工作正常,因為它不會 go 進入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()
}
您的代碼似乎需要一個REDISCLOUD_URL
環境變量。 如果您已經定義REDISTOGO_URL
,那么這將解釋它為什么不起作用。
Heroku要求你在創建redisClient時提供一個REDISCLOUD_URL環境變量。
因此您應該在創建 Redis 客戶端時提供 REDISCLOUD_URL。
let redisClient
if(process.env.REDISCLOUD_URL){
redisClient = redis.createClient(process.env.REDISCLOUD_URL)
} else {
redisClient = redis.createClient()//for running locally
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.