为什么有Session进程外存储?
- 随着项目的复杂度增加,用户量增加,一台服务器已经不可以支持很多用户访问一台服务器了
- 用户提交到一台服务器,会再这台服务器中保留数据,但是要访问其他服务器就要重新提交
解决方案:(实现Session共享)
- 用web服务器集群
- 专门找一台机器,做Session状态存储服务器(性能差)
- 将session数据存储到数据库中(性能差)
- 用Redis或Memcache(目前最火的)
原理:
再程序启动的时候,Session基本是存在该进程内(速度快,内存小,易丢失),但是为了实现分布式,可以让跟多的服务器承担对Session的操作,分布到各个服务器上,将Session存在进程外,使能够在集群中被复制或者能够持久保存或被多台服务器所共享(存储到Session中的对象必须支持序列化)。