Session用于在服务端保存用户会话状态(如:用户登录信息等)。Session在程序重启、多进程运行、负载均衡、跨域等情况时,会出现Session丢失或多进程、多个负载站点间状态不能共享的情况。
要解决这些问题,我们需要将Session持久化存储,Redis存储是一个非常不错的Session持久化解决方案。
相关模块
在express配置redis存储需要用到redis模块,session处理模块
1 | npm install redis connect-redis express-session --save |
其中,connect-redis
是一个关于session的持久化插件, 配合express-session
使用。此模块基于redis,将session相关信息持久化。
redis存储配置
引入相关模块
1 | var session = require('express-session') |
配置存储
1 | var client = redis.createClient({ |
session的使用
配置完成后,express-session
会在HTTP的请求对象request中添加一个session属性,通过这个属性我们可以实现Session会话的读写,而express-session
会自动将其持外化到Redis存储中。
1 | // 设置session |