当前位置: 首页 > 图文教程 > .Net技术 > ASP.NET > Asp.Net2.0的新技术缓存通知

ASP.NET
VS2008SP1下jQuery使用初体验
使用asp.net 2.0中的SqlBulkCopy类批量复制数据
asp.net定点执行任务总结
通过webBrowser 来轻松模拟网页来源
ASP.NET框架 数据回发与事件回发
浅谈ASP.NET内部机制
通用语言规范
GC垃圾回收
ASP.NET 配置
ASP.NET 安全认证
ASP.NET生成复合控件
asp.net中forms验证
DataTable中数据记录的统计
关于无aspx文件部署,我的一些探索心得
ASP.NET刷新页面的六种方法
ASP.NET MVC应用程序的本地化、单元测试
详解ASP.NET的四种状态
.NET与Java间进行Web Service交互的选择
自己动手实现Asp.net的MVC框架
ASP.net中网站访问量统计方法

ASP.NET 中的 Asp.Net2.0的新技术缓存通知


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 341 ::
收藏到网摘: n/a

最近又使用了一项.Net中的新技术,感觉还不错……
当同样一段数据,很多人要访问时,以前我总是不断的从数据库里面读出来到DataSet中,然后慢慢的处理,但是每一个用户的访问数据,都要进行同样的步骤,感觉机子承受不了啊……
    找了几种方法,显示用Cookies技术,发现不安全啊,于是使用Session变量来盛放数据,服务器变量,安全没有话说的,接下来发现这个Session是一个用户创建单独的一个,很能消耗服务器的资源。最后想到了缓存技术,这个使用起来也简单;可以Cache.Add,也可以Cache.Insert,还可以直接Cache["key"]=value赋值;太方便了……
    现在又发现了缓存Cache的不足之处了,那就是别人改了数据库里面的技术,但是你的Cache中的数据还是老数据,不同步啊……思考中……
    今天看了一下缓存通知方面的技术,感觉太爽了,可以在原数据发生改变时自动通知Cache,移走Cache中的老数据,这就是SQL缓存通知技术呀!大概意思就是:当你把SQL Server中的数据取出来保存在Cache中,不用怕数据过期,只要数据库里面的数据发生变化,Cache中的数据就会移除掉……
    使用这种缓存通知技术的主要步骤也简单:
1>在Web.Config配置文件中添加数据库的连接字符串:在ConnectionString这个地方添加
<add name="myconstring" connectionString="server=.;database=DB_Test;uid=sa;pwd=123456;"/>
2>接下来就是在System.Web这个地方添加:
<caching>
      <sqlCacheDependency enabled="true" pollTime="600">
        <databases>
          <add name="mydb" connectionStringName="myconstring" /add>
        </databases>
      </sqlCacheDependency>
</caching>
这就是一些关于数据缓存的一些参数设置……
3>设置允许数据缓存通知,允许数据库中的表缓存通知,这里有两种方法
第一种:简单一点通过Aspnet_regsql这个命令来执行,至于具体的,网上多的是……
第二种:就是通过编程实现开发数据库,数据库中表的缓存通知
主要的方法都在SqlCacheDependencyAdmin这个类里面:
该类包含了五个重要的方法:
DisableNotifications
为特定数据库禁用 SqlCacheDependency对象更改通知
DisableTableForNotifications
为数据库中的特定表禁用SqlCacheDependency对象更改通知
EnableNotifications
为特定数据库启用SqlCacheDependency对象更改通知
EnableTableForNotifications
为数据库中的特定表启用SqlCacheDependency对象更改通知
GetTablesEnabledForNotifications
返回启用了SqlCacheDependency对象更改通知的所有表的列表

4>无论你在前面通过那种方法,只要设置好了就可以了
先建立一个缓存依赖项SqlCacheDependency dep=new SqlCacheDependency("mydb","users")
这里这个mydb就是前面在Web.config中SqlCacheDependency定义了的一个数据库字符串,users该数据库的一个表
意思就是只要这个users表发生了变化
那么通过Cache.Insert("key",ds,dep)建立的数据缓存中的ds与key这个一项对应就会删除掉,
这样就实现了缓存通知……