-
但此时session只是一个存放在nodejs进程中的js变量,会有如下缺陷
-
进程内存有限,如果访问量过大内存暴增,进程容易挂掉
-
项目正式上线是多进程运行,进程之间内存无法共享
-
-
考虑session的特点
-
session数据量不会很大
-
session数据的丢失只需要登录以下就可以恢复,可以不用持久化保存
-
session放在所有访问的入口中( index.js ),被访问频繁,对性能要求极高
-
-
解决缺陷的方案 : 将session存储于redis,以拆分成独立服务
-
redis将数据存放在内存中,内存的读写速度快,价格昂贵,数据非持久化保存
-
将server、redis、mysql拆分成三个独立的服务,均可扩展( 例如都可扩展为集群 )