在 .NET 中缓存的定义在命名空间 System.Web.Caching 中。
.NET 中支持两种依赖:CacheDependency 和 SqlDependency。
1. CacheDependency 表示依赖对于文件或者目录的依赖
2. SqlDependency 表示基于 SQL 数据库的依赖。
过期时间 : 过期时间分为绝对过期时间和滑动过期时间两种。 两种过期时间只能二选一。
绝对过期时间为一个特点的时间点,类型为 DateTime,如果不使用绝对过期时间,
那么,使用 System.Web.Caching.Cache.NoAbsoluteExpiration 表示。
滑动过期时间为一个时间间隔,类型为 TimeSpan ,如果不使用滑动过期时间,
使用 System.Web.Caching.NoSlidingExpiration 表示。
优先级 CacheItemPriority,由于我们需要缓存大量的数据,在内存有限的情况下,就
必须对缓存的数据进行优先级分类, 以便在需要的时候, 将不重要的数据从缓存中移除,
优先级用来指定缓存数据的重要性。重要的数据可以更长时间的保存在内存中。
CacheItemPriority是一个枚举类型,从高到低定义了如下的优先级
NotRemovable 在服务器需要通过释放内存,以缓存数据的时候,这种优先级的
数据不会因为内存的调整而移除,这是最高的优先级,除非由于过期或者缓存依赖
被清除
High 在服务器释放内存时,这种优先级的数据最不可能被移除
AboveNormal 具有该优先级的数据被移除的可能性比 Normal 级别要小
Normal 具有该优先级的数据很有可能被移除
Default 就是 Normal 级别
BelowNormal 具有该优先级的数据比 Normal 级别更可能被移除
Low 此级别的数据最有可能被移除
删除通知 ,.NET 提供了一个机制,当被缓存的数据从内存中移除的时候,可以提供一
个通知机制,来回调用户定义的方法,方法必须符合 CacheItemRemovedCallback 委
托的定义。委托的定义如下
public delegate void CacheItemRemovedCallback (
string key,
Object value,
CacheItemRemovedReason reason )
CacheItemRemovedReason 为缓存项被移除的原因,
CacheItemRemovedReason 是一个枚举类型,定义了如下原因:
DependencyChanged 由于依赖发生变化被移除
Expired 由于过期被移除
Removed 由于调用 Insert 插入一个同名的缓存项或者调用 Remove 失效
Underused 系统移除
---------------------------------------------------------------------------------------------------
基于文件或者目录的依赖
在页面中可以通过静态属性取得信息
this.Label1.Text = CacheManager.Message;
---------------------------------------------------------------------------------------------------------------------