利用Memcached Providers搭建Asp.net共享Session

http://www.360doc.com/content/17/0531/16/16915_658758144.shtml

 

对于支持高并发量的web架构,服务器集群是很好的解决方案。不管是多台独立的服务器,还是一台服务器启动多个iis进程的web园,都相当存在多个独立一样的web网站。而每个web网站默认都使用自己独立的Session空间,用户每作一次请求都有可能切换到不同的web网站,所以我们需要同步这些web网站之间的Session,达到用户数据的一致性。

 

我们来看看asp.net的session保存模式

1、  InProc 模式:默认模式,即进程内模式,缺点是容易丢失,进程间不共享。

2、  StateServer 模式:使用独立的进程aspnet_state.exe来保存Session,可以多服务器共享,缺点是单服务器缓存存储,不能持久化到磁盘。

3、  Sqlserver 模式:就是把Session存入Sqlserver数据库中,可以多服务器共享,缺点是读写效率低。

4、  缓存服务器群+数据库持久化:本文所述的就是这种模式,Memcached 提供了缓存服务器集群,数据库采用sqlserver 持久化。

 

一、安装 Memcached 服务端

Memcached 分为windows版和linux版本,如果不考虑增加额外的linux服务器,可以采用windows版本运行在同一台服务器上,但是想提高集群服务器性能,还是建议使用linux集群。

Linux下安装过程大家还是百度吧,这里简单介绍一下windows下安装:

1、  下载win64版本

,win32版本百度找吧。

2、  解压到一个目录

 

3、  以管理员身份启动cmd窗口,进入解压目录

输入命令行

memcached.exe -d install

安装服务

 

然后输入命令行

memcached.exe -d start

启动服务

至此,单服务器版的memcached服务器端已经安装完毕,如果想做集群配置还是去百度吧。

 

二、安装 Memcached 客户端

1、下载到 http://memcachedproviders.codeplex.com/

或者 本站下载

, 官网提供了.net2.0 , .net3.5版本的,可以重新编译生成 .net4.0以上版本的dll

 

2、解压后,源码里Trunk\DbSQL有2个目录Create Scripts 和 Stored Procs?

里面的.sql文件是用来创建数据库表和存储过程的脚本。

 

安装sqlserver数据库2005/2008 ,我用的是sqlexpress 2005版本。然后创建数据库 session?

打开session数据库,在查询器里运行目录Create Scripts 和 Stored Procs下面的多个.sql脚本文件(一个一个运行),直到把表和所有的存储过程都创建完毕。

 

3、添加引用

重新生成 Trunk\MemcachedProviders 项目,得到3个dll

 

把这3个dll添加引用到自己的web工程里。

修改web工程的web.config????

4、  Session 使用

和传统使用方法一样

 

protected void Page_Load(object sender, EventArgs e)

{

Session[” Name”]=”test”;

}

 

5、  测试

运行网站后,打开数据库Session 的表tblSessions查看记录?

说明Session已经起作用

请关注开源框架 bigcore 大数据高并发?

http://www.8088net.com


发表评论

电子邮件地址不会被公开。 必填项已用*标注