Style
一切都是源于生活......

1、ASP.NET 2.0数据缓存的概述

       由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能。由于从内在中返回的数据的速度始终比新提供的数据速度快,因而可以大提供应用程序的性能。

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

2、ASP.NET 2.0支持的缓存

页面输出缓存

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

页面部分缓存

       页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其它部分内容则为动态内容。页面部分缓存的实现方式有两种:控件缓存(片段缓存)和缓存后替换。

应用程序数据缓存

       应用程序数据缓存提供了一种编程方式,可以通过键/值对将任意数据存储在内在中。使用应用程序缓存与使用应用程序状态类似。但是,与应用程序状态不同的是,应用程序的缓存是容易丢失的,即是数据并不是整个生命周期都存储在内在中。

缓存依赖

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

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

      注:缓存功能也有其不足之处,例如显示的内容可能不是最新的、最准确的。因此,必须设置适合的缓存策略。另外在测试与测试是不宜采用缓存策略。

posted on 2009-07-13 14:05  啊A  阅读(291)  评论(0)    收藏  举报