Cache类中Add方法和Insert方法的区别

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方法。 c#

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方法报告失败。 spa

//代码示例:将有一分钟绝对过时时间的项添加到缓存中
Cache.Insert("user","user",null,DateTime.Now.AddMinutes(1d),System.Web.Caching.Cache.NoSliding
Expiration);
相关文章
相关标签/搜索