[转] ASP.NET2.0缓存(Cache)技术

None.gif ASP.NET  2 .0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,从而有效的提高数据访问的性能。 
None.gif
None.gif数据缓存(Data Caching)就是将数据暂存于内存缓存区中(有时也暂存于硬盘缓存区中)的一种技术.当数据本身改变得不怎么频繁,而被访问的频率又比较高时,采用这种技术将大大提高警惕数据访问的效率.
None.gif
None.gif
1 .网页输出缓存
None.gif
None.gif(
1 )加显缓存
None.gif
None.gif
<% @ OutputCache Duration = " 60 "  VaryByParam = none %>
None.gif
None.gif语句
<% @dot.gif %> 是网页配置的指令,在这里用来给网页指定缓存参数.其中:Duration = " 60 " 代表缓存持续时间为60秒,VaryByParam属性用来指定特定版本的网页输出,因哪个参数而改变.在 <% @OutputCachedot.gif %> 配置指令中一定要加入VaryByParam属性.即使不使用这个版本属性,也要将它加入,但将其值设为none.
None.gif
None.gif
2 . 回调缓存
None.gif
<% @ OutputCache Duration = 60  VaryByParam = stata  %>
None.gif根据 lll.aspx
? stata = 的内容分别缓存
None.gif 下面的方法可以根据内容刷新
None.gif
< script runat = " server " >
None.gif    Shared Function GetCurrentDate(ByVal context As HttpContext) As String
None.gif        Return Now.ToString()
None.gif    End Function
None.gif
</ script >
None.gif
< asp:Substitution ID = " Substitution1 "  runat = " server "  MethodName = " GetCurrentDate "   />
None.gif
None.gif
2 .数据库缓存
None.gif
None.gif在ASP.NET2.0中可以通过数据源设置数据表的缓存参数.在SqlDataSource控件的属性中有几项用于设置缓存的参数.
None.gif
None.gifCacheDuration:代表缓存的持续时间.默认为Infinite(无限)
None.gifCacheExpirationPolicy:缓存的策略.包括两种设置:Absolute和Sliding.当设置成前者时,时限一到缓存区失效;当设置为后者时,时限到立即刷新缓存区中的数据,并继续缓存更新后的数据.
None.gifCacheKeyDependency:可以用于SQL Server2005数据库.
None.gifEnableCaching:默认时为False,即不使用数据缓存,将该属性改为True时即可启动数据缓存.
None.gifSqlCacheDependecy:缓存依赖关系.例如设置为pubs:authors表示数据库Pubs中的authors数据表与它的数据缓存之间建立依赖关系.
None.gif
None.gif有时数据表太大,缓存区可能会占用太大的内存空间.可以将数据缓存到硬盘的缓存区中,为了实现 这一点,需要做一些专门的设置.设置包括两方面.
None.gif一:在网页中配置
<% @OutputCache Duration = " 3600 "  VaryByParam = " none "  DiskCacheable = " true " %>
None.gif二:在Web.config文件中指定硬盘缓区区的大小,配置的语句如下:
None.gif
None.gif
< system.web >
None.gif    
< caching >
None.gif      
< outputCache >
None.gif        
< diskCache Enabled = " true "  maxSizePerApp = " 2 " />
None.gif      
</ outputCache >
None.gif    
</ caching >
None.gif
</ system.web >
None.gif其中diskCache Enabled
= " true "  用来启动硬盘缓存功能;maxSizePerApp = " 2 " 用来确定缓存区的容量,这里确定的缓存区最大容量为2M.同于对硬盘的存取速度比较慢,因此硬盘缓存只适用于缓存持续时间较长的情况(本例中缓存时间为1小时).
None.gif
None.gif
3 .缓存池
None.gif
None.gif数据缓存技术大大提高警惕了数据访问的速度,但却可能引发数据不一致的问题.因此以上缓存技术只适用于数据量大,变化频率不高的数据.现在ASP.NET2.0新版本结合数据库SQL Server2005,对数据缓存功能又做了很大的改进,既简化了使用过程,又完善了处理措施,其中最突出的一点就是与数据库相结合自动解决了数据失效问题.
None.gif在ASP.NET2.0中为了解决数据失效问题,通过新类SQLCacheDependency建立起与新一代数据库的
" SQL缓存依赖关系(SQL Express dependencycaching) " ,这种关系可以使得数据库能够自动监视数据表的状况,一旦数据表发生了变化,立即启动数据库本身的触发器将相应的缓存区中的数据变为无效.
None.gif
None.gif此方法也可用于SQL7
/ 2000数据库,但是使用关必须先配置所监视的数据库.配置方法比较麻烦,但配置后使用起来还是很简单的.对于更早期版本的SQL Server或者其他类型的数据库(例如Oracle),则不能利用这一功能.
None.gif
None.gif配置数据库连接池
None.gifC:\WINDOWS\Microsoft.NET\Framework\v2.
0.50727 > aspnet_regsql.exe
None.gif运行 asp.net sql Server配置向导
None.gifAspnet_regsql.exe –S “\DBNAME” –E –d “pubs” –ed
None.gif
- E windows 授权 
None.gif–ed 为enabled
None.gifAspnet_regsql.exe –S “\DBNAME” –E –D “pubs” –et –t “authors”
None.gif当 pubs.authors 改变时改变缓存
None.gif
<% @ OutputCache Duration = " 9999999 "  VaryByParam = " none "  SqlDependency = " pubs.authors "   %>
None.gif
None.gif缓存配置
None.gif     
< caching >
None.gif              
< outputCache >
None.gif                   
< diskCache enabled = " true "  maxSizePerApp = " 2 "   />
None.gif              
</ outputCache >
None.gif              
< outputCacheSettings >
None.gif                   
< outputCacheProfiles >
None.gif                        
< add name = " CacheFor60Seconds "  duration = " 60 "   />
None.gif                   
</ outputCacheProfiles >
None.gif              
</ outputCacheSettings >
None.gif              
<!--
None.gif              
< sqlCacheDependency enabled = " true "  pollTime = " 1000 "   >
None.gif                   
< databases >
None.gif                       
< add name = " PubsDB "  connectionStringName = " pubsConnectionString "   />
None.gif                   
</ databases >
None.gif              
</ sqlCacheDependency >
None.gif              
-->
None.gif         
</ caching >
None.gif
None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值