Cache缓存使用相关

原创 2005年02月28日 16:17:00

一.使用说明

Cache.Insert  (String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)方法

参数

key

用于引用该对象的缓存键。

value

要插入缓存中的对象。

dependencies

该项的文件依赖项或缓存键依赖项。当任何依赖项更改时,该对象即无效,并从缓存中移除。如果没有依赖项,则此参数包含空引用(Visual Basic 中为 Nothing)。

absoluteExpiration

所插入对象将过期并被从缓存中移除的时间。

slidingExpiration

最后一次访问所插入对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将过期并被从缓存中移除。

priority

该对象相对于缓存中存储的其他项的成本,由 CacheItemPriority 枚举表示。该值由缓存在退出对象时使用;具有较低成本的对象在具有较高成本的对象之前被从缓存移除。

onRemoveCallback

在从缓存中移除对象时将调用的委托(如果提供)。当从缓存中删除应用程序的对象时,可使用它来通知应用程序。

.此方法将用相同的 key 参数改写现有 Cache

注意   如果 keyvalue 参数为空,则发生 ArgumentNullException。如果将 slidingexpiration 参数设置为小于 TimeSpan.Zero 或大于一年,则发生 ArgumentOutOfRangeException。不能对同一个缓存项同时设置可调整到期和绝对到期时间。如果这样做,将发生 ArgumentException。

三.缓存清理、过期、文件依赖项和键依赖项

  • 清理是指当内存变得很少时,缓存尝试移除不常使用和不太重要的项。希望控制清理如何发生的程序员可以在项插入到缓存时为清理程序提供提示,指出创建项的相对成本和使项保持有用而必须具有的相对访问率。

  • 过期使程序员得以提供缓存项的生存期,其时间既可以是确切时间(例如,6:00 过期),也可以是相对于项的上次使用的时间(例如,上次访问项后 20 分钟过期)。项过期后将从缓存中被移除,以后若试图检索它,将返回空值,除非将它重新插入缓存。

  • 文件和键依赖项允许缓存项的有效性基于外部文件或其他缓存项。如果依赖项改变,则缓存项失效并从缓存中被移除。有关如何使用此功能的示例,请考虑以下方案:应用程序从定期更新的 XML 文件读取财务信息。应用程序处理文件中的数据并以可使用的格式创建表示该数据的对象图形。应用程序缓存该数据并在从中读取该数据的文件上插入依赖项。当更新该文件时,数据从缓存中被移除,应用程序可以重新读取它并重新插入该数据的更新副本。

四.CacheDependency 类

跟踪缓存依赖项,缓存依赖项可以是应用程序的 Cache 中的文件、目录或与其他对象的键。无法继承此类。

有关此类型所有成员的列表,请参阅 CacheDependency 成员。

System.Object
   System.Web.Caching.CacheDependency




线程安全

此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

备注

可以用 Add 和 Insert 方法向应用程序缓存中添加具有依赖项的项。

当向应用程序的 Cache 对象添加一项,从而为该项定义一个缓存依赖项时,将自动创建 CacheDependency 类的一个实例来跟踪对所指定文件、键或目录的更改。这有助于避免丢失在创建对象时和将其插入 Cache 时之间对对象进行的更改。CacheDependency 实例可以表示单个文件或目录、一组文件或目录,或者带有一系列缓存键的一组文件或目录(这些缓存键表示 Cache 对象中存储的其他项)。

示例

[Visual Basic, C#] 下面的示例说明如何使用 HasChanged 属性来确定 CacheDependency 是否在对 Cache 中某项的上一个请求之后已更改。将传入 start 参数的 dt 值设置为 DateTime.Now。

[Visual Basic] ' Insert the cache item. Dim dep As New 
CacheDependency(fileName, dt) myCache.Insert("key", "value", dep) '
 Check whether CacheDependency.HasChanged is true. If dep.HasChanged 
Then Response.Write("
The dependency has changed.") Else Response.Write("
The dependency has not changed.") End If

[C#] // Insert the cache item. CacheDependency dep = new CacheDependency(fileName, dt); 
cache.Insert("key", "value", dep); 
// Check whether CacheDependency.HasChanged is true. if (dep.HasChanged) Response.Write("
The dependency has changed."); else Response.Write("
The dependency has not changed.");

(转)Cache与主存之间的全相联映射,直接映射和组相联映射的区别

Cache与主存之间的全相联映射,直接映射和组相联映射的区别 1.高速缓冲存储器的功能、结构与工作原理   高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比...
  • stardhb
  • stardhb
  • 2015年04月06日 11:23
  • 7580

高速缓存Cache与主存间采用全相联的地址影像方式

高速缓存Cache与主存间采用全相联的地址影像方式,高速缓存的容量为4MB(2006)● 高速缓存Cache与主存间采用全相联的地址影像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为2...
  • boychen1987
  • boychen1987
  • 2014年10月15日 16:22
  • 2773

7个示例科普CPU Cache line

转载于http://coolshell.cn/articles/10249.html CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参...
  • cool_way
  • cool_way
  • 2014年12月10日 23:28
  • 5848

关于“缓存着色(cache coloring, page coloring)”技术的相关资料介绍

关于缓存着色(cache coloring)的相关资料
  • qianlong4526888
  • qianlong4526888
  • 2014年01月08日 17:22
  • 3361

浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag

浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETaghttp://www.path8.net/tn/archives/2685作者: fen...
  • xcyuzhen
  • xcyuzhen
  • 2011年04月18日 02:31
  • 2667

关于“缓存着色(cache coloring, page coloring)”技术的相关资料介绍

为了了解缓存着色的作用,搜集很多资料,但是都不甚满意。有时间会按照自己的理解写一篇博客介绍。 page coloring、cache coloring、缓存着色,是相同的技术,叫法不一样而已。 ...
  • dyllanzhou
  • dyllanzhou
  • 2014年11月12日 16:02
  • 318

cache/ehcache缓存使用

  • 2015年10月23日 21:25
  • 220KB
  • 下载

WordPress静态缓存插件WP Super Cache的使用方法

WP Super Cache是众多静态缓存插件中最值得推荐的一款,下面将着重介绍他的使用方法。 第一步:安装WP Super Cache 为节省时间,此步骤省略。不会安装WordPress...
  • h1217
  • h1217
  • 2016年12月01日 16:07
  • 3592

Guava Cache内存缓存使用实践-定时异步刷新及简单抽象封装

缓存在应用中是必不可少的,经常用的如redis、memcache以及内存缓存等。Guava是Google出的一个工具包,它里面的cache即是对本地内存缓存的一种实现,支持多种缓存过期策略。 Gua...
  • u012859681
  • u012859681
  • 2017年07月17日 16:53
  • 2832

Spring缓存注解@Cache使用

缓存注解有以下三个: @Cacheable      @CacheEvict     @CachePut   @Cacheable(value=”accountCache”),这个注...
  • a454832841
  • a454832841
  • 2017年05月24日 10:45
  • 274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cache缓存使用相关
举报原因:
原因补充:

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