代码改变世界

Session共享

2019-03-01 14:41  huoit  阅读(144)  评论(0编辑  收藏  举报

 

Session简介

Session简单来说就是会话;当用户首次与Web服务器建立连接的时候,Web服务器会与用户建立一个会话,分配给用户一个SessionID,通常24位字符,通过fidller可以看到一个叫ASP.Net_SessionId的cookie;

.NET中Session的存储方式

1)、InProc,Session存储在进程内,这也是ASP.Net中的存储方式,也是默认值
2)、StateServer,Session存储在独立的状态服务即ASP.NET State Service中
3)、SQLServer,Session存储在SQL Server数据库中
4)、Custom,自定义保存方式,可以保存在Oracle、SQLServer、MongoDb、Redis中

分布式网站通常使用的Session解决方案:

1)、Session复制;多台服务器之间相互复制Session,每台服务器都存储完整的Session数据;传输效率低;

2)、Session绑定;通过用户IP计算Hash绑定Session到对应机器;容易宕机失效;

3)、Session+Cookie;每次都使用本地Cookie访问服务器;Cookie大小限制;

4)、Session共享集群;统一将Session共享在缓存服务器上;

 

 

.NET中Session共享

 

1、NuGet包

Microsoft.Web.RedisSessionStateProvider

2、修改配置

 

 

 

 

 

 

 

 

资料

https://github.com/Azure/aspnet-redis-providers/wiki/Configuration