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

时间:2017-02-17 05:50:31

标签: node.js session express redis connect

当我检查我的redis-server状态时,它表示redis服务器正在运行,但是当我登录时出现此错误 RedisClient.on('error',function(err){ console.log('Redis错误:'+错误); // Redis错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED 127.0.0.1:6379 }); 当我尝试控制req.session时,它返回undefined。关于这个问题的任何线索? 请帮助我,我是新手。谢谢

继承我的设置:

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);
});

1 个答案:

答案 0 :(得分:1)

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

引用connect-redis文档 -

  

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

此外,还有一些参考错误,我已在此代码段中进行了更正。

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");
});