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