亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET緩存Cache之數據緩存

2019-11-14 16:49:50
字體:
來源:轉載
供稿:網友

添加 Cache[Key]=object  or Cache.Insert

移除 Cache.Remove(key)

1、將值直接寫入Cache

 代碼如下復制代碼

HttpContext.Current.Cache["One"] = "1";

使用'絕對過期'方式處理緩存,過期時間為:9999年12月31日 (不推薦使用該方法處理緩存,并且應在適當的時候清空緩存Key)


2、使用Insert(String, Object)插入Cache

 代碼如下復制代碼

string cacheKey = "Two";
object cacheValue = HttpContext.Current.Cache.Get(cacheKey);

if(cacheValue == null)
{
    cacheValue = WebConfigurationManager.ConnectionStrings["applicationServices"].ConnectionString;

    HttpContext.Current.Cache.Insert(cacheKey, cacheValue);
}

//顯示指定緩存的Key 與 Value
this.ShowMessage(cacheKey, cacheValue.ToString());

3、使用Insert(String, Object, CacheDependency, DateTime, TimeSpan)插入Cache

 代碼如下復制代碼

string cacheKey = "__cache__students";

DataSet dataSet = this.Cache.Get(cacheKey) as DataSet;

if(dataSet == null)
{
    dataSet = new DataSet();

    //加載xml并填充至DataSet
    dataSet.ReadXml(this.Server.MapPath(@"XMLFile.xml"));

    //加入緩存,并設定'絕對過期時間'為5分鐘
    this.Cache.Insert(cacheKey, dataSet, null, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);
}

//綁定DataGrid數據
grdDefault.DataSource = dataSet;
grdDefault.DataBind();

該方法較重要的兩個參數為absoluteExpiration及slidingExpiration
absoluteExpiration  DateTime類型,代表絕對過期時間
slidingExpiration  TimeSpan類型,代表滑動過期時間
absoluteExpiration與slidingExpiration不能同時使用
例如:設定了absoluteExpiration參數時,slidingExpiration必須設定為System.Web.Caching.Cache.NoSlidingExpiration
反之:設定了slidingExpiration參數時,http://www.111cn.net/net/net/56762.htm absoluteExpiration必須設定為System.Web.Caching.Cache.NoAbsoluteExpiration

 4、使用Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPRiority,

 代碼如下復制代碼

CacheItemRemovedCallback)插入Cache

public partial class PriorityAndCallbackDemo : System.Web.UI.Page
{
    #region 靜態字段
    static bool CacheItemRemoved = false;
    static CacheItemRemovedReason Reason;
    static string CacheItemKey = "fw__cache__students";
    #endregion

    #region 事件處理
    //頁面加載
    protected void Page_Load(object sender, EventArgs e)
    {
        //緩存項已移除
        if(PriorityAndCallbackDemo.CacheItemRemoved)
        {
            ltMessage.Text = string.Format("Key={0}已從緩存移出,原因為:{1}", PriorityAndCallbackDemo.CacheItemKey, PriorityAndCallbackDemo.Reason.ToString());
        }
    }

    //'添加緩存'按鈕 點擊事件 處理
    protected void btnAddCache_Click(object sender, EventArgs e)
    {
        DataSet dataSet = this.Cache.Get(PriorityAndCallbackDemo.CacheItemKey) as DataSet;

        if(dataSet == null)
        {
            dataSet = new DataSet();
            dataSet.ReadXml(this.Server.MapPath(@"XMLFile.xml"));

            //使用 Web.config 作為緩存過期依賴項
            CacheDependency dependency = new CacheDependency(this.Server.MapPath(@"Web.config"), DateTime.Now);

            //加入緩存,設定優先級為默認級別
            this.Cache.Insert(PriorityAndCallbackDemo.CacheItemKey, dataSet, dependency, DateTime.Now.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, new CacheItemRemovedCallback(this.CacheItemRemovedHandler));
        }

        //綁定GridView數據
        grdDefault.DataSource = dataSet;
        grdDefault.DataBind();
    }

    //'移除緩存'按鈕 點擊事件 處理
    protected void btnRemoveCache_Click(object sender, EventArgs e)
    {
        if(this.Cache[PriorityAndCallbackDemo.CacheItemKey] != null)
        {
            this.Cache.Remove(PriorityAndCallbackDemo.CacheItemKey);
        }
    }
    #endregion

    #region 私有方法
    //緩存項移除事件處理
    private void CacheItemRemovedHandler(string key, object value, CacheItemRemovedReason relason)
    {
        PriorityAndCallbackDemo.CacheItemRemoved = true;
        PriorityAndCallbackDemo.Reason = relason;
    }
    #endregion
}

該方法較重要的兩個參數為CacheItemPriority及CacheItemRemovedCallback
CacheItemPriority  緩存項優先級,當服務器內存不夠時,優先級越高的項越不容易被移除
CacheItemRemovedCallback  該參數為委托類型,當緩存項被移除時所調用,包含Reason參數用于表示緩存項被移除的原因

【我是怎么用的】

首先理解緩存策略??烧{過期策略 和 絕對過期策略。注意,兩則不能同時使用
 

使用可調過期策略,需要將absoluteExpiration=DateTime.MaxValue ,TimeSpan .FromMinutes(10)設置項目只有在10分鐘內不被使用才會被移除

 代碼如下復制代碼

Cache.Insert("data", "123", null , DateTime.MaxValue, TimeSpan.FromMinutes(10));

絕對策略,如天氣報告,將信息保存60分鐘

 代碼如下復制代碼

Cache.Insert("data", "123", null , DateTime.Now.AddMinutes(60), TimeSpan.Zero);

緩存依賴。

即一個緩存的失效依賴另外一個object。這里的object可以指另外一個緩存,或者一個文件,或者....


類:CacheDependency 命名空間 System.Web.Caching.CacheDependency依賴于其它緩存項目

 代碼如下復制代碼

System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency (null, new string [] { "time" });
Cache.Insert( "number", ++num, cacheDependency);
 
依賴于文件或文件夾
 
System.Web.Caching. CacheDependency cacheDependency = new System.Web.Caching.CacheDependency ( "test.xml");
當test.xml文件刪除、更新時自動從緩存中移除
 
System.Web.Caching.CacheDependency cacheDependency = new System.Web.Caching.CacheDependency(null, new string[] { "time" });
Cache.Insert("test", "123", cacheDependency);

 
移除項目回調
 Cache.Insert("test", "123", null , DateTime.Now.AddSeconds(10), TimeSpan.Zero, new CacheItemUpdateCallback(Test));
 
 
 private void Test(string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration)
    {
 
    }
 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久ktv| 亚洲精品国产成人| 亚洲国产日韩一区| 欧美日韩综合视频网址| 日韩中文av在线| 国语自产精品视频在线看抢先版图片| 精品久久久一区二区| 久久九九精品99国产精品| 91精品久久久久久| 在线视频欧美日韩精品| 亚洲成年人影院在线| 亚洲人成亚洲人成在线观看| 亚洲a中文字幕| 亚洲午夜未满十八勿入免费观看全集| 久久精品国产成人| 欧美激情免费观看| 91精品国产高清久久久久久91| 欧美精品激情blacked18| 欧美专区在线视频| 91亚洲精品一区| 欧洲中文字幕国产精品| 国产亚洲一区二区在线| 韩国一区二区电影| 日韩精品在线视频| 日韩av免费在线观看| 欧美理论电影在线观看| 亚洲国产欧美在线成人app| 亚洲日本中文字幕免费在线不卡| 久久91超碰青草是什么| 国产日韩精品一区二区| 热99精品只有里视频精品| 国产精品一区二区久久久久| 欧美一区亚洲一区| 国内精品久久影院| 亚洲精品美女视频| 精品激情国产视频| 亚洲久久久久久久久久| 亚洲香蕉在线观看| 日韩欧美在线网址| 91av网站在线播放| 亚洲最新av网址| 国产亚洲精品久久久久久牛牛| 揄拍成人国产精品视频| 久久久av网站| 久久久免费精品视频| 亚洲黄色在线观看| 精品呦交小u女在线| 北条麻妃一区二区三区中文字幕| 2019中文字幕在线观看| 亚洲理论电影网| 久久在线视频在线| 亚洲精品视频在线播放| 日韩av中文字幕在线免费观看| 欧美怡红院视频一区二区三区| 一区二区三区视频免费在线观看| 欧美日本啪啪无遮挡网站| 亚洲最新av在线网站| 成人在线国产精品| 日韩av在线精品| 国产精品99蜜臀久久不卡二区| 欧美在线视频导航| 国产欧美日韩亚洲精品| 亚洲美女在线视频| 亚洲色图校园春色| 成人在线激情视频| 日韩日本欧美亚洲| 51色欧美片视频在线观看| 欧美成人精品一区二区三区| 国产日韩在线播放| 亚洲免费一级电影| 久久久久久久久亚洲| 精品福利在线看| 日韩一区二区三区国产| 久久精品色欧美aⅴ一区二区| 午夜精品一区二区三区在线视| 欧美夜福利tv在线| 久久中文字幕一区| 亚洲色图美腿丝袜| 久久久久久欧美| 亚洲欧美精品在线| 久久免费精品视频| 亚洲性日韩精品一区二区| 98视频在线噜噜噜国产| 91在线无精精品一区二区| 亚洲欧美日韩国产成人| 精品欧美激情精品一区| 欧美精品久久久久久久久| 亚洲精品中文字幕女同| 国产精品电影观看| 久久中文字幕在线| 欧美又大粗又爽又黄大片视频| 日韩电影大全免费观看2023年上| 欧美成人性色生活仑片| 97在线看免费观看视频在线观看| 丝袜美腿精品国产二区| 成年无码av片在线| 亚洲精品狠狠操| 亚洲免费精彩视频| 日韩美女视频免费看| 国内久久久精品| 欧美在线观看一区二区三区| 亚洲第一中文字幕| 亚洲欧美日韩天堂一区二区| 国产精品人人做人人爽| 亚洲另类图片色| 国产一区二区三区久久精品| 亚洲欧美中文日韩v在线观看| 91综合免费在线| 成人免费淫片视频软件| 欧美巨乳美女视频| 亚洲自拍高清视频网站| 中文字幕精品国产| 4p变态网欧美系列| 亚洲视频一区二区三区| 日韩欧美一区二区在线| 日韩三级成人av网| 在线视频亚洲欧美| 国产精品一区久久| 久久精品91久久久久久再现| 国产精品对白刺激| 精品国产网站地址| 中文字幕久久久av一区| 亚洲人成电影在线| 7777kkkk成人观看| 欧美激情三级免费| 国产在线视频2019最新视频| 国产日韩精品一区二区| 亚洲а∨天堂久久精品喷水| 亚洲精品美女久久久| 日韩欧美999| 成人激情视频在线观看| 91夜夜揉人人捏人人添红杏| 日韩av在线播放资源| 色偷偷91综合久久噜噜| 亚洲色图日韩av| 欧美一区深夜视频| 久久精品国产2020观看福利| 日韩欧美亚洲范冰冰与中字| 欧美巨乳在线观看| 美女视频黄免费的亚洲男人天堂| 亚洲缚视频在线观看| 欧美成人午夜激情在线| 国产精品久久久久久亚洲调教| 亚洲国内精品视频| 日韩av一卡二卡| 日韩欧美精品免费在线| 日韩在线视频一区| 久久人人爽国产| 日韩av在线不卡| 日韩精品一区二区三区第95| 中文字幕欧美精品日韩中文字幕| 懂色av影视一区二区三区| 亚洲精品在线观看www| 黑人巨大精品欧美一区免费视频| 亚洲欧美一区二区三区四区| 曰本色欧美视频在线| 国产99视频在线观看| 91天堂在线观看| 欧美大尺度在线观看| 国外成人性视频| 秋霞午夜一区二区| 91精品视频免费观看| 在线观看国产成人av片| 精品国产一区二区三区久久久狼|