asp.net缓存-数据依赖缓存

    由于项目有用到Cache这块知识,这里总结一下。

   在Vs2008 Vc  窗口下运行 aspnet_regsql -C "server= (local)\tadb;database=abico;uid= sa;pwd =" -ed -et -t "Events"

   会在你的Database建立一个AspNet_SqlCacheTablesForChangeNotification 这个表,还有若干个存储过程。

 

   在Web.config 中配置下缓存的信息

  

ExpandedBlockStart.gif 配置信息
< appSettings />
 
< connectionStrings >
  
< add name = " testCache "  connectionString = " data source = 127.0.0.1;initial catalog = abico;user id = sa ;password =135246  "  providerName = " System.Data.SqlClient " />
 
</ connectionStrings >

 

 

ExpandedBlockStart.gif 代码
< system.web >
    
< caching >
            
< sqlCacheDependency enabled = " true "  pollTime = " 1000 " >
                
< databases >
                    
< add name = " abico "  connectionStringName = " testCache " />
                
</ databases >
            
</ sqlCacheDependency >

 

 

其中pollTime 是轮询数据库的时间,默认是1分钟,单位毫秒。这个参数很重要,类似定时器功能,应用程式会根据这个时间定时的去轮询你的数据库,获取你的table是否有更新。

 

如果不在 Web.config中配置,也可以写在SqlCacheDependencyAdmin这个类中。

如果想对多个表进行缓存:

1)在AspNet_SqlCacheTablesForChangeNotification表中,新增一条记录 tabName 就是你要缓存的表

2)SqlCacheDependencyAdmin.EnableTableForNotifications(conString, "QX_User");第一个参数是连接字符串,第二个是要缓存的表名。

主要一点是你的缓存依赖性 要写对表名

SqlCacheDependency dep = new SqlCacheDependency("abico", "QX_User"); abico:数据库名,QX_User:表名。

------------------------------------------------------

我理解的Cache 就是.net自己做好了一个定时器根据PollTime时间去轮询数据库,调用存储过程,知道表的AspNet_SqlCacheTablesForChangeNotification的信息,里面有标记ChangeID。当ChangeID改变时,有回调函数的就触发回调函数,没有的话就把现有的缓存删除了。

-------------------------------------------------------

DEMO下载 /Files/86188281/CacheTest.rar

转载于:https://www.cnblogs.com/86188281/archive/2010/03/19/1689629.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值