All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
存储过程从入门到熟练(多个存储过程完整实例及调用方法)_mssql学习_编程技术
让我们来编写一些PHP实用的脚本_php资料_编程技术
PHP中多张图片上传并校验的实现_[PHP教程]
PHP中 ADODB 类库介绍(二)_[PHP教程]
PHP技巧:何避免页面刷新数据重复写入数据库_[PHP教程]
Asp.net中的页面乱码的问题_[Asp.Net教程]
delphi设置提示信息
Visual C++ 6.0教程:Visual C++ 6.0概述
SQL转ACCESS解决自动编号问题_[SQL,Server教程]
让您网页的按钮也能使用热键_JavaScript技术_编程技术
Reading number is top 10 pictures
刘亦菲写真集1
深圳的风光
Sora aoi on twitter4
2012 national geographic daily picture5
什么叫国家
9.3阅兵全景图7-指挥系统和后勤保障系统梯队
传几朵花
陪睡门马睿菈自曝写真 称首拍大尺度照片3
俞敏洪在清华终于说了实话
Absolutely shocked. National geographic 50 animal photographys3
Download software ranking
The hero
jBuilder2006
Tram sex maniac 2 (H) rar bag16
功夫熊猫2(下集)
The Bermuda triangle2
I'm come from Beijing1
Tram sex maniac 2 (H) rar bag17
Boxer vs Yellow4
matrix3
C++教程第四版
delv published in(发表于) 2014/1/6 9:02:04 Edit(编辑)
ASP.NET2.0的缓存技术简介_[Asp.Net教程]

ASP.NET2.0的缓存技术简介_[Asp.Net教程]

ASP.NET2.0的缓存技术简介_[Asp.Net教程]

由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能。用户从数据库中检索数据,可能是Web应用程序中执行最慢的操作之一。因为其中涉及多个环节,例如,Web服务器、数据库服务器等。尤其是在用户比较多,检索的数据量比较大的情况下,会给包括用户在内的各个方面造成不小的困难。如果能够将数据库中的数据缓存到内存(也可以存储在其他场所),则无需在请求每个页面时都访问数据库。由于从内存中返回数据的速度始终比新提供的数据速度快,因而可以大大提供应用程序的性能。

  缓存有一个不太容易克服的缺点,那就是数据过期的问题。最典型的情况是,如果将数据库表中的数据内容缓存到服务器内存中,当数据库表中的记录发生更改时,Web应用程序则很可能显示过期的、不准确的数据。对于某些类型的数据,即使显示的信息过期,影响也不会很大。然而,对于实时性要求比较严格的数据,例如,股票价格、拍卖出价之类信息,显示的数据稍有过期都是不可接受的。

  为了解决以上问题,ASP.NET 1.x中曾经提供了一些比较好的缓存功能,例如,页面输出缓存、部分缓存、页面数据缓存等。虽然这些缓存功能可以解决数据缓存方面的问题,但还是存在较大的缺点,开发人员必须在性能和数据过期之间作出权衡,数据过期的问题始终困扰着开发人员。例如,如果数据库表中的数据发生了变化,缓存则也许不能在指定的时间内更新,而必须等到缓存过期,那么就有可能为用户带来一定的麻烦。理想的情况是,数据库表中的任何更新,都能够立刻体现在缓存数据中,ASP.NET 2.0克服了以上不足,解决了这个问题。ASP.NET 2.0的缓存功能是在ASP.NET 1.x基础之上扩展而来的。

  ASP.NET 2.0支持以下几种缓存

  ·页面输出缓存

  页面输出缓存是最为简单的缓存机制,该机制将整个ASP.NET页面内容保存在服务器内存中。当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期。在这个过程中,缓存内容直接发送给用户,而不必再次经过页面处理生命周期。通常情况下,页面输出缓存对于那些包含不需要经常修改内容的,但需要大量处理才能编译完成的页面特别有用。需要读者注意的是,页面输出缓存是将页面全部内容都保存在内存中,并用于完成客户端请求。

  ·页面部分缓存

  顾名思义,页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其他部分内容则为动态内容。页面部分缓存的实现包括两种方式:控件缓存和替换后缓存。前者也可称为片段缓存,这种方式允许将需要缓存的信息包含在一个用户控件内,然后,将该用户控件标记为可缓存的,以此来缓存页面输出的部分内容。这一方式缓存了页面中的特定内容,而没有缓存整个页面,因此,每次都需重新创建整个页。例如,如果要创建一个显示大量动态内容(如股票信息)的页,其中有些部分为静态内容(如每周总结),这时可以将静态部分放在用户控件中,并允许缓存这些内容。缓存后替换与控件缓存正好相反。这种方式缓存整个页,但页中的各段都是动态的。例如,如果要创建一个在规定时间段内为静态的页,则可以将整个页设置为进行缓存。如果向页添加一个显示用户名的Label控件,则对于每次页刷新和每个用户而言,Label的内容都将保持不变,始终显示缓存该页之前请求该页的用户的姓名。使用缓存后替换机制,可以将页配置为进行缓存,将页的个别部分标记为不可缓存。在此情况下,可以向不可缓存部分添加Label控件,这样将为每个用户和每次页请求动态创建这些控件。

  ·应用程序数据缓存

  应用程序数据缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中。使用应用程序缓存与使用应用程序状态类似。但是,与应用程序状态不同的是,应用程序数据缓存中的数据是易失的,即数据并不是在整个应用程序生命周期中都存储在内存中。应用程序数据缓存的优点是由ASP.NET管理缓存,它会在项过期、无效,或内存不足时移除缓存中的项,还可以配置应用程序缓存,以便在移除项时通知应用程序。

  ·缓存依赖

  ASP.NET 1.x已经提供了一些基于时间、文件、目录等缓存依赖功能。这些功能虽然能够处理一些常见问题,但是无法解决数据过期的难题。为此,ASP.NET 2.0新增了SQL数据缓存依赖功能。该功能的核心是SqlCacheDependency类。不同版本的SQL Server,其对于SQL数据缓存依赖具有不同程度的支持,因此,使用方法差异较大。另外,ASP.NET 2.0还支持以CacheDependency类为核心的自定义缓存依赖,以及以AggregateCacheDependency类为核心的聚合缓存依赖等。

  ASP.NET 2.0包括了一些有助于进行缓存配置的新功能。例如,允许使用Web.config文件来创建缓存设置。在Web.config文件中进行适当设置,并在单个页中引用这些设置后,就能够将缓存设置同时应用于多个页面。同时,缓存设置还添加了更多用于自定义缓存性能的选项。

  以上简单介绍了ASP.NET 2.0提供的缓存功能,它们能够提高请求响应的吞吐量以便提高应用程序性能。实际上,这些缓存功能有的继承自ASP.NET 1.x,并且得到了增强,有的则是新增功能。增强功能包括功能更强大的页面部分缓存模型、增强的缓存配置以及输出缓存指令的改进。新功能包括Web.config缓存配置支持、自定义缓存依赖、聚合缓存依赖、SQL数据缓存依赖以及缓存后替换等。

  在正式开始介绍以上各个缓存功能之前,还有两个概念需要了解。一个是缓存清除,另一个是缓存过期。

  缓存清除是指从内存中移除缓存数据。可能由以下3个原因造成:一是缓存项数据过期。每个过期的缓存项数据都必须被删除,否则导致服务器内存不足,影响其他应用程序执行。二是缓存依赖项发生改变。依赖项与数据缓存项有着密切关系。根据应用程序设置,如果依赖项发生改变,那么数据缓存很可能会被清除。三是由于服务器内存不足,开始缓存清理过程。如果某些项在一段时间内未被访问,或是在添加到缓存中时被标记为低优先级,则这些项会被移除。

  以上介绍了缓存清除的概念和形成原因,其中涉及一个数据过期的问题。在ASP.NET 2.0中,当向缓存添加项时,可以设置两种数据过期类型。一种称为可调过期,即指定某项自上次被访问后多长时间过期。例如,可以将某项设置为自上次在缓存中被访问后20分钟过期。另一种是绝对过期,即指定某项在设定的时间过期,而不考虑访问频率。例如,可以将某项设置为在下午6点过期,或4小时后过期。

  ASP.NET 2.0的缓存功能具有以下优点:

  ·支持更为广泛和灵活的可开发特征

  ASP.NET 2.0包含一些新增的缓存控件和API。例如,自定义缓存依赖、Substitution控件、页面输出缓存API等,这些特征能够明显改善开发人员对于缓存功能的控制。

  ·增强的可管理性

  使用ASP.NET 2.0提供的配置和管理功能,可以更加轻松地管理缓存功能。

  ·提供更高的性能和可伸缩性

  ASP.NET 2.0提供了一些新的功能,例如,SQL数据缓存依赖等,这些功能将帮助开发人员创建高性能、伸缩性强的Web应用程序。

  另外,缓存功能也有其自身的不足。例如,显示的内容可能不是最新、最准确的,为此,必须设置合适的缓存策略。又如,缓存增加了系统的复杂性并使其难于测试和调试,因此建议在没有缓存的情况下开发和测试应用程序,然后在性能优化阶段启用缓存选项。
来源:CSDN





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.