我注意到一些项目将使用redis存储和表达会话来保存用户会话
例如:
const session = require('express-session');
var redis = require("redis");
var redisStore = require('connect-redis')(session);
var client = redis.createClient();
var app = express();
app.use(session({
secret: 'scret',
store: new redisStore({
host: '127.0.0.1',
port: 6379,
client: client,
ttl : 7200
}),
saveUninitialized: true,
// rolling: false,
resave: true,
cookie: {
maxAge: 2 * 60 * 60 * 1000
}
}));
我们需要同时使用这两个会话管理功能的原因是什么?
express-session
可以用不同的"商店";以保存会话数据。
MemoryStore随程序包express-session
提供。
express-session
的作者对此默认存储发出警告。
警告默认的服务器端会话存储MemoryStore是故意不是为生产环境设计的。它会泄漏存储器在大多数条件下不按比例通过单个过程,用于调试和开发。
Redis是兼容的会话存储之一,在这种情况下;作为替换";默认存储的。