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

ASP.NET
一些很酷的.Net技巧
Asp.Net2.0的新技术缓存通知
在ASP.NET中使用.NET组件
在ASP.NET中自动给URL地址加上超链接
.NET 窗体之间的交互
六大ASP.NET实用技巧
ASP.Net中实现RSA加密的方法
ASP.NET 2.0 AJAX中Webservice调用方法
ASP.NET中MD5和SHA1加密的几种方法
水晶报表PUSH模式多个表数据的显示
用.NET 操作Excel编程
ASP.NET 页面事件顺序和生命周期
用.Net的Web服务实现天气预报[转]
在ASP.NET下实现数字和字符相混合的验证码
在ASP.NET中调用存储过程方法新解
ASP.NET验证控件详解
ASP.NET中实现模版的动态加载
Asp.Net中带图片的重填按钮
如何在.Net 中把图片存入数据库
asp.net的MVC编程、MV编程以及URL重写

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 340 ::
收藏到网摘: 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这个一项对应就会删除掉,
这样就实现了缓存通知……