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);
相關文章
相關標籤/搜索