ASP.NET2.0缓存(Cache)技术
来源: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)技术相关推荐
- asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】
asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.1 ...
- asp.net2.0学习历程 菜鸟到中级程序员的飞跃
如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾博览群书,很多书重复,很多书讲的不适用,这些书都是目前书店可以买到的: 达到中级程序 ...
- ASP.NET2.0_缓存
1.页面缓存: 页面输出缓存用于缓存页面呈现的所有内容(当在浏览器中选择查看源码能看的所有内容)到内存中. 注:页面输出缓存作用于整个页面. 1.1部分页面缓存通过只缓存页面上的一个特定区域 ...
- asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]
asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾 ...
- 转: ASP.NET2.0_缓存
转: http://www.cnblogs.com/arishuang/archive/2008/10/05/1303990.html 1.页面缓存: 页面输出缓存用于缓存页面呈现的所有内容 ...
- asp.net2.0学习指导 菜鸟到中级程序员的飞跃
[导语] 自从小编进入图书行业以来就经常被朋友们作为图书指导,经常会被追问到学习这个个语言应该买那些书?学习那门技术看什么书好?在查看读者留言时也经常能看到这样的留言,为此我们图书频道和d ...
- ASP.NET2.0里的web.config配置接口API(转)
ASP.NET2.0里的配置接口API ASP.NET2.0里的配置API接口函数允许我们读/写配置文件----包括对web.config和machine.config的读写.您可以读写您自己应用程序 ...
- asp.net2.0学习历程 菜鸟到中级程序员的飞跃 转载
asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 主页:http://blog.csdn.net/21aspnet/ 时间:2007.5.16 学历历程 如 ...
- ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性
深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...
- 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 ...
最新文章
- 顺络新能源汽车技术研讨会圆满落幕
- numpy是这样操作的
- windows8.1 windows defender service无法启动解决方案
- css IE下执行的样式,其他浏览器忽略
- Centos环境docker的正确安装及疑难杂症
- java多线程基本概述(二十)——中断
- 辉光UIView的category
- 机器学习入门学习资料推荐
- 简述HTML语言概念,HTML语言的基本概念和基本格式.doc
- mycat 分表子查询_还不懂MyCat?一文带你深入剖析,实现MySQL读写分离
- 中国互联网大佬隐退简史
- 胡润百富:华为成为中国最值钱消费电子企业 小米排名第二
- 综合项目之闪讯破解(一)之 闪讯拨号用户名核心算法
- Zookeeper如何保证数据一致性
- 4565: [Haoi2016]字符合并 区间DP
- 如何在java面试中给出一个出彩的自我介绍
- 小菜成长记---【proxy 代理模式 ---西门庆干潘金莲——王婆做代理】
- 3D Instance Embedding Learning With a Structure-Aware Loss Function for Point Cloud Segmentation
- 树莓派4b制作加载的FLASH文件系统并移植busybox
- Linux SPI 驱动
热门文章
- Python3 类(2)
- php时间测试,PHP 测试程序运行时间
- 黑马旅游网完整代码_黑马旅游网(二)注册登陆
- vscode css智能补全_让你编码嗨到停不下来的8个VSCode插件
- xuperchain 查看源码代码版本号
- 以太坊 智能合约 代码 数据空间 存储在哪儿
- 微信小程序云开发教程-微信小程序的JS高级-页面间数据传递
- 判断当前环境在微信下,还是企业微信下
- PHP 二维数组根据某个字段排序
- android 文件管理 显示缩略图,android将缩略图保存到缩略图文件夹_android_开发99编程知识库...