express的express-session默认是保存到内存中的,保存到内存不利于持久化,不利于分布式。
我们看看如果把session保存到redi中。
使用到的模块

  • express
  • express-session
  • redis
  • connect-redis

创建redis客户端

var client = redis.createClient(8000,'10.10.10.10',{});
client.auth('redis密码');

给客户端示例添加connect监听

client.on('connect', function() {
    console.log('connected');
});

express-session默认配置

app.use(session({
    resave: false,
    saveUninitialized: true, 
    secret: 'hubwiz app', //secret的值建议使用随机字符串
    cookie: {maxAge: 60 * 1000 * 30} // 过期时间(毫秒)
}));

使用connect-redis

app.use(session({
    resave: false, 
    saveUninitialized: true, 
    secret: "hubwiz app",
    store: new RedisStore({ host: '10.10.10.10', port: 8000, client: client })
}));

测试

client.set('sfsf', 1)
client.get('sfsf', function(err, value) {
  if(err) console.log(err);
  else console.log('value', value);
});