【问题标题】:Redis error: Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379Redis 错误:错误:Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379
【发布时间】:2017-07-06 12:45:57
【问题描述】:

当我检查我的 redis-server 状态时,它说 redis 服务器正在运行,但我在登录时收到此错误 RedisClient.on('error', function(err) { console.log('Redis error: ' + err);// Redis error: Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 }); 当我尝试控制台 req.session 它返回未定义。关于这个问题的任何线索? 请帮助我,我是新手。谢谢你

这是我的设置:

var express = require('express');
var redis = require("redis");
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var parser = require('body-parser');
var RedisClient= redis.createClient();

app.use(session({
secret: 'myseceret',
store: new redisStore({host: '127.0.0.1', port: 6379, client: client,ttl : 260}),
saveUninitialized: false,
resave: false,
cookie: { secure: true }
}));
client.on('error', function(err) {
console.log('Redis error: ' + err);
});

【问题讨论】:

    标签: node.js session express redis connect


    【解决方案1】:

    您在 redisStore 的选项中一起提供了互斥参数。您要么传递主机和端口,要么只传递现有的 redis 客户端。

    引用connect-redis docs -

    需要 Redis 客户端。现有客户端可以使用客户端参数直接传递,也可以使用主机、端口或套接字参数为您创建

    还有一些参考错误,我已经在这个 sn-p 中更正了。

    var express = require('express');
    var redis = require("redis");
    var session = require('express-session');
    var redisStore = require('connect-redis')(session);
    var parser = require('body-parser');
    var RedisClient= redis.createClient();
    
    var app = express();
    
    app.use(session({
        secret: 'mysecret',
        store: new redisStore({client: RedisClient,ttl : 260}),
        saveUninitialized: false,
        resave: false,
        cookie: { secure: true }
    }));
    
    RedisClient.on('error', function(err) {
        console.log('Redis error: ' + err);
    });
    
    RedisClient.on("ready",function () {
        console.log("Redis is ready");
    });
    

    【讨论】:

    • 嗨,谢谢。我已经尝试了您提供的代码,但仍然遇到同样的问题:(
    • 当我通过 redis-cli ping 检查 redis 服务器时。它说:无法在 127.0.0.1:6379 连接到 Redis:连接被拒绝
    • 嗨@fyeah,你能告诉我你的操作系统环境,以便我可以进一步帮助你
    • 我正在尝试使用 ubuntu 16 在我的实时生产服务器中设置 redis。这真的是我第一次设置。请帮助我
    • 使用该命令sudo service redis status检查redis服务器是否正在运行。如果显示已停止,请通过 sudo service redis start 启动它,否则检查 redis 配置文件以检查它在哪个端口上运行。