重庆先峰热水器维修:Asp.Net2.0的新技术缓存通知

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 14:10:12

最近又使用了一项.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这个地方添加

2>接下来就是在System.Web这个地方添加:

     
       
         
       

     


这就是一些关于数据缓存的一些参数设置……
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这个一项对应就会删除掉,
这样就实现了缓存通知……