Cache.Add 方法

转载 2006年05月23日 12:27:00
ASP.NET 为您提供了一个强大的、便于使用的缓存机制,允许您将需要大量的服务器资源创建的对象存储在内存中。它是由 Cache 类实现的,实例是每个应用程序专用的,其生存期依赖于该应用程序的生存期。当重新启动应用程序时,将重新创建其 Cache 对象的实例。

设计 Cache 类是为了便于使用。通过使用与值成对的键,您可以将项放置在 Cache 中并在以后检索它们。有关如何进行该操作的示例,请参阅将项添加到缓存中和检索缓存项的值。

Cache 类为您提供了一个简单的接口来自定义缓存设置,它还提供了强大的功能允许您自定义如何缓存项以及将它们缓存多长时间。例如当缺乏系统内存时,缓存自动移除很少使用的或不重要的项以允许使用内存来处理大量的请求。这种技术叫做清理。这是缓存确保非当前数据不使用宝贵的服务器资源的一种方式。

当执行清理时,您可以指示 Cache 给予某些项比其他项更高的优先级。若要指示特定项比其他项具有较高或较低的重要性,请在使用 Cache.Add 方法或 Cache.Insert 方法添加项时指定一个 CacheItemPriority 枚举值。

当使用 Add 方法或 Insert 方法将项添加到 Cache 时,您还可以建立项的到期策略。您可以通过使用 absoluteexpiration 参数定义项的生存期,该参数为 DateTime 类型,允许您指定该项的到期时间。您还可以使用 slidingexpiration 参数,该参数为 TimeSpan 类型。它允许您根据项被访问的时间指定该项到期之前要经过的时间。一旦该项到期,便将它从缓存中移除。试图检索其值将返回 null,除非该项被重新添加到 Cache 中。

对于存储在 Cache 中的易失项(例如那些经常进行数据刷新的项或那些只在一段时间内有效的项),设置一种到期策略,只要这些项的数据保持为最新的,就将它们保留在 Cache 中。例如,如果您正在编写一个应用程序,该应用程序通过从一个经常更新的 Web 站点获得数据来跟踪体育比赛的比分,那么只要源 Web 站点上比赛的比分不更改,就可以缓存这些比分。在此情况下,您可以根据该 Web 站点更新比分的频率来设置到期策略。您可以编写代码来确定 Cache 中是否是最新的比分。如果该比分不是最新的,则该代码可以从源 Web 站点更新比分。

最后,ASP.NET 允许您根据外部文件、目录或另一个缓存项定义缓存项的有效性。这些叫做文件依赖项和键依赖项。如果依赖项更改,则缓存项失效并被从 Cache 中移除。您可以使用该技术在项的数据源更改时从 Cache 中移除这些项。例如,如果您编写一个处理 XML 文件中财务数据的应用程序,并将其呈现在图形中,则您可以从该文件将数据插入 Cache 并在该 XML 文件上保留一个依赖项。当该文件更新时,从缓存中移除该项,您的应用程序重新读取该文件,然后插入该项的一个新版本。

注意 Cache 没有关于它所包含项的内容的信息。它只保留对这些对象的引用。它还提供跟踪它们的依赖项和设置到期策略的方法。
有关如何利用这些功能的更多信息,请参阅将项添加到缓存中。

相关文章推荐

Cache.Insert 与 Cache.Add 区别

Cache.Insert 与 Cache.Add 区别

Cache的Insert 和Add 方法引发的血案

Cache的Insert 和Add 方法引发的血案把一个简单的CMS系统拷贝到阿里云2008服务器上后,执行一个页面操作的时候,第一次操作正常,第二次或者第三次的时候,IIS就假死。查看日志:“**错...

Eclipse Tomcat 8 警告: Unable to add the resource at [***] to the cache...

最近在Eclipse中使用Tomcat 8 的时候总是出现大量如下的警告:警告: 警告: Unable to add the resource at [/WEB-INF/lib/spring-webm...

测试ArrayList和LinkedList的add方法

  • 2014年03月17日 12:44
  • 2KB
  • 下载

引用 Cache.Insert 与 Cache.Add 区别

 System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈希表和数据集)的词典。它还为这些对象提供到期功能,并提...

Cache.Insert 与 Cache.Add 区别

Cache.Insert 与 Cache.Add 区别 System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈...

Fragment销毁时replace和add两个方法的区别

这个首先从一个bug说起,如图: 我们都知道fragment切换有两种方式:1. replace方式transaction.replace(R.id.content, IndexFragment);2...
  • shimiso
  • shimiso
  • 2015年03月27日 15:01
  • 39463

在List的add方法添加对象时都是最后的一条记录的重复

在做项目的时候,遇到过一个很容易忽略的问题。就是自己感觉逻辑明明没错的,但是为什么输出结果跟自己想象的有点出入呢?比如下面的代码:(先自己考虑会输出什么,再试试代码会输出什么) List userLi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cache.Add 方法
举报原因:
原因补充:

(最多只允许输入30个字)