ASP.NET缓存:方法和最佳实践(2)

分类: asp.net技巧   出处:iocblog整理  更新时间:2008-11-21   添加到收藏  

  在 cache 中存储数据
  
  在 cache 中存储数据的最简单的方法就是使用一个键为其赋值,就像 hashtable 或 dictionary 对象一样:
  
  cache["key"] = "value";
  
  这种做法将在缓存中存储项,同时不带任何依赖项,因此它不会到期,除非缓存引擎为了给其他缓存数据提供空间而将其删除。要包括特定的缓存依赖项,可使用 add() 或 insert() 方法。其中每个方法都有几个重载。add() 和 insert() 之间的唯一区别是,add() 返回对已缓存对象的引用,而 insert() 没有返回值(在 c# 中为空,在 vb 中为 sub)。
  
  示例
  
  cache.insert("key", myxmlfiledata, new
  
  system.web.caching.cachedependency(server.mappath("users.xml")));
  
  该示例可将文件中的 xml 数据插入缓存,无需在以后请求时从文件读取。 cachedependency 的作用是确保缓存在文件更改后立即到期,以便可以从文件中提取最新数据,重新进行缓存。如果缓存的数据来自若干个文件,还可以指定一个文件名的数组。
  
  cache.insert("dependentkey", mydependentdata, new
  
  system.web.caching.cachedependency(new string[] {}, new string[]
  
  {"key"}));
  
  该示例可插入键值为 "key" 的第二个数据块(取决于是否存在第一个数据块)。如果缓存中不存在名为 "key" 的键,或者如果与该键相关联的项已到期或被更新,则 "dependentkey" 的缓存条目将到期。
  
  cache.insert("key", mytimesensitivedata, null,
  
  datetime.now.addminutes(1), timespan.zero);
  
  绝对到期:此示例将对受时间影响的数据缓存一分钟,一分钟过后,缓存将到期。注意,绝对到期和滑动到期(见下文)不能一起使用。
  
  cache.insert("key", myfrequentlyaccesseddata, null,
  
  system.web.caching.cache.noabsoluteexpiration,
  
  timespan.fromminutes(1));
  
  滑动到期:此示例将缓存一些频繁使用的数据。数据将在缓存中一直保留下去,除非数据未被引用的时间达到了一分钟。注意,滑动到期和绝对到期不能一起使用。
  
  更多选项
  
  除了上面提到的依赖项,我们还可以指定项的优先级(依次为 low、high、notremovable,它们是在 system.web.caching.cacheitempriority 枚举中定义的)以及当缓存中的项到期时调用的 cacheitemremovedcallback 函数。大多数时候,默认的优先级已经足够了 ― 缓存引擎可以正常完成任务并处理缓存的内存管理。cacheitemremovedcallback 选项考虑到一些很有趣的可能性,但实际上它很少使用。不过,为了说明该方法,我将提供它的一个使用示例:
  
  cacheitemremovedcallback 示例
  
  system.web.caching.cacheitemremovedcallback callback = new system.web.cac(来源www.iocblog.net)

上一页 [1] [2]


Tag: 缓存



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。