来源:http://www.study-code.com/dotnet/aspnet/67497.htm

ASP.NET2.0缓存(Cache)技术2007-08-31 10:04ASP.NET 2.0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,从而有效的提高数据访问的性能。

数据缓存(Data Caching)就是将数据暂存于内存缓存区中(有时也暂存于硬盘缓存区中)的一种技术.当数据本身改变得不怎么频繁,而被访问的频率又比较高时,采用这种技术将大大提高警惕数据访问的效率.

1.网页输出缓存

(1)加显缓存

<%@ OutputCache Duration="60" VaryByParam=none%>

语句<%@%>是网页配置的指令,在这里用来给网页指定缓存参数.其中:Duration="60"代表缓存持续时间为60秒,VaryByParam属性用来指定特定版本的网页输出,因哪个参数而改变.在<%@OutputCache%>配置指令中一定要加入VaryByParam属性.即使不使用这个版本属性,也要将它加入,但将其值设为none.

2. 回调缓存
<%@ OutputCache Duration=60 VaryByParam=stata %>
根据 lll.aspx?stata=的内容分别缓存
 下面的方法可以根据内容刷新
<script runat="server">
     Shared Function GetCurrentDate(ByVal context As HttpContext) As String
         Return Now.ToString()
     End Function
</script>
<asp:Substitution ID="Substitution1" runat="server" MethodName="GetCurrentDate" />

2.数据库缓存

在ASP.NET2.0中可以通过数据源设置数据表的缓存参数.在SqlDataSource控件的属性中有几项用于设置缓存的参数.

CacheDuration:代表缓存的持续时间.默认为Infinite(无限)
CacheExpirationPolicy:缓存的策略.包括两种设置:Absolute和Sliding.当设置成前者时,时限一到缓存区失效;当设置为后者时,时限到立即刷新缓存区中的数据,并继续缓存更新后的数据.
CacheKeyDependency:可以用于SQL Server2005数据库.
EnableCaching:默认时为False,即不使用数据缓存,将该属性改为True时即可启动数据缓存.
SqlCacheDependecy:缓存依赖关系.例如设置为pubs:authors表示数据库Pubs中的authors数据表与它的数据缓存之间建立依赖关系.

有时数据表太大,缓存区可能会占用太大的内存空间.可以将数据缓存到硬盘的缓存区中,为了实现 这一点,需要做一些专门的设置.设置包括两方面.
一:在网页中配置<%@OutputCache Duration="3600" VaryByParam="none" DiskCacheable="true"%>
二:在Web.config文件中指定硬盘缓区区的大小,配置的语句如下:

<system.web>
    <caching>
      <outputCache>
        <diskCache Enabled="true" maxSizePerApp="2"/>
      </outputCache>
    </caching>
</system.web>
其中diskCache Enabled="true" 用来启动硬盘缓存功能;maxSizePerApp="2"用来确定缓存区的容量,这里确定的缓存区最大容量为2M.同于对硬盘的存取速度比较慢,因此硬盘缓存只适用于缓存持续时间较长的情况(本例中缓存时间为1小时).

3.缓存池

数据缓存技术大大提高警惕了数据访问的速度,但却可能引发数据不一致的问题.因此以上缓存技术只适用于数据量大,变化频率不高的数据.现在ASP.NET2.0新版本结合数据库SQL Server2005,对数据缓存功能又做了很大的改进,既简化了使用过程,又完善了处理措施,其中最突出的一点就是与数据库相结合自动解决了数据失效问题.
在ASP.NET2.0中为了解决数据失效问题,通过新类SQLCacheDependency建立起与新一代数据库的"SQL缓存依赖关系(SQL Express dependencycaching)",这种关系可以使得数据库能够自动监视数据表的状况,一旦数据表发生了变化,立即启动数据库本身的触发器将相应的缓存区中的数据变为无效.

此方法也可用于SQL7/2000数据库,但是使用关必须先配置所监视的数据库.配置方法比较麻烦,但配置后使用起来还是很简单的.对于更早期版本的SQL Server或者其他类型的数据库(例如Oracle),则不能利用这一功能.

配置数据库连接池
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe
运行 asp.net sql Server配置向导
Aspnet_regsql.exe –S “\DBNAME” –E –d “pubs” –ed
-E windows 授权
–ed 为enabled
Aspnet_regsql.exe –S “\DBNAME” –E –D “pubs” –et –t “authors”
当 pubs.authors 改变时改变缓存
<%@ OutputCache Duration="9999999" VaryByParam="none" SqlDependency="pubs.authors" %>

缓存配置
     <caching>
              <outputCache>
                   <diskCache enabled="true" maxSizePerApp="2" />
              </outputCache>
              <outputCacheSettings>
                   <outputCacheProfiles>
                        <add name="CacheFor60Seconds" duration="60" />
                   </outputCacheProfiles>
              </outputCacheSettings>
              <!--
              <sqlCacheDependency enabled="true" pollTime="1000" >
                   <databases>
                       <add name="PubsDB" connectionStringName="pubsConnectionString" />
                   </databases>
              </sqlCacheDependency>
              -->

转载于:https://www.cnblogs.com/kangshifu/archive/2008/08/14/1267858.html

ASP.NET2.0缓存(Cache)技术相关推荐

  1. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

  2. asp.net2.0学习历程 菜鸟到中级程序员的飞跃

    如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾博览群书,很多书重复,很多书讲的不适用,这些书都是目前书店可以买到的: 达到中级程序 ...

  3. ASP.NET2.0_缓存

    1.页面缓存:      页面输出缓存用于缓存页面呈现的所有内容(当在浏览器中选择查看源码能看的所有内容)到内存中. 注:页面输出缓存作用于整个页面. 1.1部分页面缓存通过只缓存页面上的一个特定区域 ...

  4. asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾 ...

  5. 转: ASP.NET2.0_缓存

    转: http://www.cnblogs.com/arishuang/archive/2008/10/05/1303990.html 1.页面缓存:      页面输出缓存用于缓存页面呈现的所有内容 ...

  6. asp.net2.0学习指导 菜鸟到中级程序员的飞跃

          [导语] 自从小编进入图书行业以来就经常被朋友们作为图书指导,经常会被追问到学习这个个语言应该买那些书?学习那门技术看什么书好?在查看读者留言时也经常能看到这样的留言,为此我们图书频道和d ...

  7. ASP.NET2.0里的web.config配置接口API(转)

    ASP.NET2.0里的配置接口API ASP.NET2.0里的配置API接口函数允许我们读/写配置文件----包括对web.config和machine.config的读写.您可以读写您自己应用程序 ...

  8. asp.net2.0学习历程 菜鸟到中级程序员的飞跃 转载

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.16 学历历程 如 ...

  9. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

  10. DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0(ver 3.0.9Beta)

    英文名:DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0 中文名:DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.N ...

最新文章

  1. 顺络新能源汽车技术研讨会圆满落幕
  2. numpy是这样操作的
  3. windows8.1 windows defender service无法启动解决方案
  4. css IE下执行的样式,其他浏览器忽略
  5. Centos环境docker的正确安装及疑难杂症
  6. java多线程基本概述(二十)——中断
  7. 辉光UIView的category
  8. 机器学习入门学习资料推荐
  9. 简述HTML语言概念,HTML语言的基本概念和基本格式.doc
  10. mycat 分表子查询_还不懂MyCat?一文带你深入剖析,实现MySQL读写分离
  11. 中国互联网大佬隐退简史
  12. 胡润百富:华为成为中国最值钱消费电子企业 小米排名第二
  13. 综合项目之闪讯破解(一)之 闪讯拨号用户名核心算法
  14. Zookeeper如何保证数据一致性
  15. 4565: [Haoi2016]字符合并 区间DP
  16. 如何在java面试中给出一个出彩的自我介绍
  17. 小菜成长记---【proxy 代理模式 ---西门庆干潘金莲——王婆做代理】
  18. 3D Instance Embedding Learning With a Structure-Aware Loss Function for Point Cloud Segmentation
  19. 树莓派4b制作加载的FLASH文件系统并移植busybox
  20. Linux SPI 驱动

热门文章

  1. Python3 类(2)
  2. php时间测试,PHP 测试程序运行时间
  3. 黑马旅游网完整代码_黑马旅游网(二)注册登陆
  4. vscode css智能补全_让你编码嗨到停不下来的8个VSCode插件
  5. xuperchain 查看源码代码版本号
  6. 以太坊 智能合约 代码 数据空间 存储在哪儿
  7. 微信小程序云开发教程-微信小程序的JS高级-页面间数据传递
  8. 判断当前环境在微信下,还是企业微信下
  9. PHP 二维数组根据某个字段排序
  10. android 文件管理 显示缩略图,android将缩略图保存到缩略图文件夹_android_开发99编程知识库...