Add方法,该方法在将数据项添加到缓存的同时,还允许为应用程序数据缓存设置有效期、优先级、依赖项等特性。
public Object Add(
string key, //用于应用该项的缓存键
Object value, //要添加到缓存的项
CacheDependency dependencies, //该项的文件依赖项或缓存键依赖项。当任何依赖项更改时,该对象即无效,并从缓存中移除。如果没有依赖项,则此参数包含null引用。
DateTime absoluteExpiration, //所添加对象将过期并从缓存中移除的时间。如果使用可调过期,则absoluteExpiration参数必须为NoAbsoluteExpiration。
TimeSpan SlidingExpiration, //最后一次访问所添加对象时与该对象过期时之间的时间间隔,如果该值等效于20分钟,则对象在最后一次被访问20分钟之后将过期并从缓存中移除。如果使用绝对过期,则slidingExpiration参数必须为NoSlidingExpiration
CacheItemPriority priority, //对象的相对成本,由CacheItemPriority枚举表示。缓存在退出对象时使用该值:具有较低成本的对象在具有较高成本的对象之前被从缓存中移除。
CacheItemRemovedCallback onRemoveCallBack //在从缓存中移除对象时所调用的委托(如果提供)。当从缓存中删除应用程序的对象时,可使用它来通知应用程序。
)
在使用Add方法的时候,需要注意的是,如果缓存中已保存了具有相同键名的项时,则对此方法的调用将失败。如果要使用相同的key参数改写现有的Cache项,那么必须使用Insert方法。
Insert方法与Add方法具有相似之处,但是Insert方法支持4种重载方式(参数说明与Add方法参数基本相同):
Insert(String,Object)
Insert(String,Object,CacheDependency)
Insert(String,Object,CacheDependency,Datetime,TimeSpan)
Insert(String,Object,CacheDependency,Datetime,TimeSpan,CacheItemPriority,CacheItemRemovedCall
Back)
Add方法使用上没有Insert方法那样灵活,在调用Add方法时必须提供7个参数,而使用Insert方法可根据需求随意取重载方式。另外,如果调用Insert或者Add方法,将以存储在缓存中的某项添加到重复缓存中时,那么它们的策略是不同的:insert方法替换该选项,而Add方法报告失败。
//代码示例:将有一分钟绝对过期时间的项添加到缓存中
Cache.Insert("user","user",null,DateTime.Now.AddMinutes(1d),System.Web.Caching.Cache.NoSliding
Expiration);