国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
講解asp.net緩存cache定時更新數(shù)據(jù)

本文和大家分享講解一下asp.net 使用駐留在頁面中的Cache緩存常用可定時更新的數(shù)據(jù).
這個就先需要先知道一下System.Web.Caching.Cache類,其實在我做WEB應(yīng)用的時候,我會將一些使用頻繁但是又要經(jīng)常使用并且需要急時更新的對象放到Cache中,這樣可以很大程序上減少從硬盤上讀取數(shù)據(jù)的次數(shù)。
就是希望讓W(xué)eb應(yīng)用程序從一開始運(yùn)行到結(jié)束都一直存在,有人就說為什么不用Application呢?其實Cache是可以一段時間內(nèi)自動更新數(shù)據(jù)的,而Application就無法做成這樣的,另外Application在Web這種高并發(fā)的系統(tǒng)中一定要考慮線程安全的問題,Application本身就不是線程安全的,而Cache就是線程安全。所以一般我都會在很多對象中我只從Web開始運(yùn)行的時候從數(shù)據(jù)庫或文件里獲取一次數(shù)據(jù),在不同的頁面中,都是使用Cache的,而且Cache中的數(shù)據(jù)可能弄成自動更新的,所以一般情況不需要考慮數(shù)據(jù)更新的問題,另外Cache也是也應(yīng)用程序關(guān)聯(lián)的,全部可能駐留在該Web應(yīng)用程序中的任何頁面。
當(dāng)然首先我們應(yīng)該熟悉一下System.Web.Caching.Cache這個類,我這里也就只說說其中使用比較多的幾個方法和屬性,如果需要更詳細(xì)的介紹請查閱MSDN。
首先介紹它的Add()方法,將指定的對象添加到Cache對象集合中。
Insert()方法將覆蓋有相同Key的Cache頂。
Remove()從應(yīng)用程序的Cache對象中移除指定項。
Count屬性,獲取存儲在緩存中對象數(shù)。
這里我主要要說的是Add()方法,因為我們?nèi)绻胍L期存在Cache并且在一段時間內(nèi)自動替換Cache,就必須非常了解它。我們看看MSDN中對該方法的詳細(xì)介紹吧。呵。
C#
public Object Add(string key,Object value,CacheDependency dependencies,DateTime absoluteExpiration,TimeSpan slidingExpiration,CacheItemPriority priority,CacheItemRemovedCallback onRemoveCallback)參數(shù)
key
類型:System.String
用于引用該項的緩存鍵。
value
類型:System.Object
要添加到緩存的項。
dependencies
類型:System.Web.Caching.CacheDependency
該項的文件依賴項或緩存鍵依賴項。當(dāng)任何依賴項更改時,該對象即無效,并從緩存中移除。如果沒有依賴項,則此參數(shù)包含 nullNothingnullptrnull 引用(在 Visual Basic 中為 Nothing)。
absoluteExpiration
類型:System.DateTime
所添加對象將到期并被從緩存中移除的時間。如果使用可調(diào)到期,則 absoluteExpiration 參數(shù)必須為 NoAbsoluteExpiration。
slidingExpiration
類型:System.TimeSpan
最后一次訪問所添加對象時與該對象到期時之間的時間間隔。如果該值等效于 20 分鐘,則對象在最后一次被訪問 20 分鐘之后將到期并從緩存中移除。如果使用絕對到期,則 slidingExpiration 參數(shù)必須為 NoSlidingExpiration。
priority
類型:System.Web.Caching.CacheItemPriority
對象的相對成本,由 CacheItemPriority 枚舉表示。緩存在退出對象時使用該值;具有較低成本的對象在具有較高成本的對象之前被從緩存移除。
onRemoveCallback
類型:System.Web.Caching.CacheItemRemovedCallback
在從緩存中移除對象時所調(diào)用的委托(如果提供)。當(dāng)從緩存中刪除應(yīng)用程序的對象時,可使用它來通知應(yīng)用程序。
返回值
類型:System.Object
備注
如果 Cache 中已保存了具有相同 key 參數(shù)的項,則對此方法的調(diào)用將失敗。若要使用相同的 key 參數(shù)覆蓋現(xiàn)有的 Cache 項,請使用 Insert 方法。
無法同時設(shè)置 absoluteExpiration 和 slidingExpiration 參數(shù)。如果要讓緩存項在特定時間到期,可將 absoluteExpiration 參數(shù)設(shè)置為特定時間,并將 slidingExpiration 參數(shù)設(shè)置為 NoSlidingExpiration。
如果要讓緩存項在最后一次訪問該項后的某段時間之后到期,可將 slidingExpiration 參數(shù)設(shè)置為到期間隔,并將 absoluteExpiration 參數(shù)設(shè)置為 NoAbsoluteExpiration。

具體的怎樣添加這種緩存了,一般情況我會在母版頁中Init事件或Load事件中添加緩存,因為這樣可以保證引用程序從一開始執(zhí)行就可以將需要頻繁使用的對象緩存起來了。

protected void Page_Load(object sender, EventArgs e)
{
    Cache.Add("key",                //需要添加到Cache中的鍵
        new { value="添加值"},      //對應(yīng)的值
        null,                       //緩存依賴項。
        DateTime.Now.AddMinutes(1),//固定緩存時間
        System.Web.Caching.Cache.NoSlidingExpiration, //可到延時緩存時間,
        System.Web.Caching.CacheItemPriority.NotRemovable, //緩存中的優(yōu)先級。
        new System.Web.Caching.CacheItemRemovedCallback(OnMoveCacheBack));//移除時調(diào)用的回調(diào)函數(shù)
}

public void OnMoveCacheBack(string key, object value, System.Web.Caching.CacheItemRemovedReason reason)
{
    if (Cache[key] != null)
    {
        Cache.Remove(key);
    }
    Cache.Add("key",                //需要添加到Cache中的鍵
        new { value = "更新值" },      //對應(yīng)的值
        null,                       //緩存依賴項。
        DateTime.Now.AddMinutes(1),//固定緩存時間
        System.Web.Caching.Cache.NoSlidingExpiration, //可到延時緩存時間,
        System.Web.Caching.CacheItemPriority.NotRemovable, //緩存中的優(yōu)先級。
        new System.Web.Caching.CacheItemRemovedCallback(OnMoveCacheBack));//移除時調(diào)用的回調(diào)函數(shù)
}

參數(shù)的具體使用上一定要注意三點,

第一就是緩存的依賴項一定要指定為null。

第二固定到期緩存時間不能和可到延時緩存時間同時指定時間,實現(xiàn)我說的定期更換數(shù)據(jù)的,當(dāng)然就要使用固定到期緩存時間了。

第三就是該緩存的優(yōu)先級了,這個也比較關(guān)鍵,一定要指定為System.Web.Caching.CacheItemPriority.NotRemovable枚舉值,這樣才不會被自動收回,但是一定要注意該緩存的大小。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
自定義HttpFilter模塊完善
細(xì)說 ASP.NET Cache 及其高級用法
ASP.NET緩存全解析4:應(yīng)用程序數(shù)據(jù)緩存
C# MemoryCache學(xué)習(xí)筆記
在.NET項目中使用PostSharp,使用MemoryCache實現(xiàn)緩存的處理
Spring 整合 Ehcache 管理緩存詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服