ASP.NET 2.0(C#)中System.Web.Caching的应用
1、向应用程序的添加缓存
public void Insert ( string key, Object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration )参数
- key
用于引用该对象的缓存键。
- value
要插入缓存中的对象。
- dependencies
所插入对象的文件依赖项或缓存键依赖项。当任何依赖项更改时,该对象即无效,并从缓存中移除。如果没有依赖项,
则此参数包含 空引用(在 Visual Basic 中为 Nothing)。
- absoluteExpiration
所插入对象将过期并被从缓存中移除的时间。如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration。
- slidingExpiration
最后一次访问所插入对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟
之后将过期并被从缓存中移除。如果使用可调过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。ds = db.ExecuteDataSet(dbCommand);//插入缓存中的bject
Cache cache = System.Web.HttpContext.Current.Cache;
object oProvider = cache.Get(cachekey);
//向应用程序的缓存中插入具有绝对过期的项
cache.Insert(cachekey, ds, null, DateTime.Now.AddMinutes(30),TimeSpan.Zero);
cache.Insert(cachekey, ds, null, DateTime.Now.AddMinutes(30),Cache.NoSlidingExpiration);
//向缓存中插入具有可调整过期的项
cache.Insert(cachekey, ds, null, DateTime.MaxValue, TimeSpan.FromMinutes(30));
cache.Insert(cachekey, ds, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(30));
public Object Add ( string key, Object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback参数
- key
用于引用该项的缓存键。
- value
要添加到缓存的项。
- dependencies
该项的文件依赖项或缓存键依赖项。当任何依赖项更改时,该对象即无效,并从缓存中移除。如果没有依赖项,则此参数包含
空引用(在 Visual Basic 中为 Nothing)。
- absoluteExpiration
所添加对象将过期并被从缓存中移除的时间。如果使用可调过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。
- slidingExpiration
最后一次访问所添加对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后
将过期并从缓存中移除。如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration。
- priority
对象的相对成本,由 CacheItemPriority 枚举表示。缓存在退出对象时使用该值;具有较低成本的对象在具有较高成本的对象之前
被从缓存移除。
- onRemoveCallback
在从缓存中移除对象时所调用的委托(如果提供)。当从缓存中删除应用程序的对象时,可使用它来通知应用程序。
public void AddItemToCache(Object sender, EventArgs e) { itemRemoved = false; onRemove = new CacheItemRemovedCallback(this.RemovedCallback); if (Cache["Key1"] == null) Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove); }2.清除缓存
Cache.Remove(cacheKey);