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

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);

转载于:https://my.oschina.net/u/1019043/blog/133014

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值