Welcome 微信登录

首页 / 网页编程 / ASP.NET / Wap流量统计开发中使用Cache心得

Wap流量统计开发中使用Cache心得2011-08-01 博客园 DerryZhang在《他舅网wap流量统计分析平台》开发中为了提高系统的性能,我们利用Cache来保存数据,例如把 用户的一些权限信息放在Cache中,但这样做会有些问题,何时清除Cache与数据保持同步,下面我在项目 中使用Cache的心得,与大家分享。

一、利用CacheDependency类

它在命名空间System.Web.Caching中。CacheDependency类会与文件之间建立依附性关系。在文件更改 时,该Cache项会自动移除。

方法:

把用户权限信息保留成XML文件,当管理员更新数据时,同时更新这个XML文件。

代码:

//Cahce值为XML文件内容
XmlDocument doc = Cache["user"] as XmlDocument;
if (doc == null)
{
doc = new XmlDocument();
string filePath = Server.MapPath("user.xml");
//建立依赖项
CacheDependency c = new CacheDependency(filePath);
doc.Load(filePath);
//建立依赖关系
Cache.Insert("skin", doc, c
,Cache.NoAbsoluteExpiration
,TimeSpan.FromMinutes(30)
);
}

二、利用SqlCacheDependency类

它也在命名空间System.Web.Caching中,SqlCacheDependency会与数据库表或SQL Server查询结果建 立依赖关系,这种方法操作比较复杂。

步聚1:

在Web.Config文件中增加数据库连接串与Cache配置节点。

<configuration>
<appSettings/>
<connectionStrings>
<add name="connStr" connectionString="server=192.168.1.24;uid=sa;pwd=l23;database=CacheTest;"/>
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency>
<databases>
<!--节点connectionStringNam的值connStr必须与上面定义的连接串节点name的值相同-->
<add name="entryName" connectionStringName="connStr" pollTime="50000"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
</configuration>