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

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

[.net 面向對象程序設計進階] (15) 緩存(Cache)(二) 利用緩存提升程序性能

2019-11-17 02:12:05
字體:
來源:轉載
供稿:網友

[.net 面向對象程序設計進階] (15) 緩存(Cache)(二) 利用緩存提升程序性能

[.net面向對象程序設計進階](15)緩存(Cache)(二)利用緩存提升程序性能

本節導讀:

上節說了緩存是以空間來換取時間的技術,介紹了客戶端緩存和兩種常用服務器緩布,本節主要介紹一種.NET中特別重要的緩布技術Cache.利用Cache提升程序性能。

1. 緩存Cache的命名空間

.NET中對緩存有兩個命名空間

命名空間1:System.Web.Caching

命名空間2:System.Runtime.Caching

引用范圍:這兩個命名空間,都可以在Web和非WEB應用程序中引用.

生命周期:理論上來說是一直存在,我們可以設置過期時間。但當內存開銷緊張的時候,也會清理緩存釋放空間。因此我們后面的程序應用中會判斷Cache的對象是否存在,不存在的情況下,重新創建來解決失效問題。

下面介紹一下緩存的具體使用方法。

2. 創建和讀取緩存

緩存也是對向對象的,我們先創建一個實體類,還是比較熟悉的“武功高手”類:

/// <summary>/// 類:武林高手/// MartialArtsMaster/// </summary>    public class MartialArtsMaster{    /// <summary>    /// 編號    /// </summary>    public int id { get; set; }    /// <summary>    /// 姓名    /// </summary>    public string name { get; set; }    /// <summary>    /// 門派    /// </summary>    public string menpai { get; set; }               /// <summary>    /// 武功    /// </summary>    public string kongFu { get; set; }}

下面我們創建一個緩存,并讀緩存,遍歷對象

//增加幾個武林高手List<MartialArtsMaster> masterList = new List<MartialArtsMaster>() {    new MartialArtsMaster(){ id=1, name="段譽", menpai="天龍寺", kongFu="六脈神劍"},    new MartialArtsMaster(){ id=2, name="喬峰", menpai="丐幫", kongFu="降龍十八掌"},    new MartialArtsMaster(){ id=3, name="虛竹", menpai="逍遙派", kongFu="北冥神功"}};//緩存的創建System.Web.Caching.Cache objCache = Htt

運行結果如下:

3. 常見的緩存在工廠反射模式中的應用

我們這里先不討論設計模式,但是在使用很多代碼生成器的時候,對于工廠反射模式動態創建多個數據層接口時,常常使用了緩存技術,將動態反射創建的類緩存起來,提高下次訪問效率。

下面是簡單工廠反射模式中的緩存應用代碼片段:

object objType = GetCache(ClassName);//從緩存讀取if (objType == null){    try    {        objType = Assembly.Load(AssemblyPath).CreateInstance(ClassName);//反射創建        SetCache(ClassNamespace, objType);// 寫入緩存    }    catch(Exception ex)    { }}

4. 緩存的使用原則

緩存有效的提高了程序效率,但也要合理使用,下面是幾種使用的原則:

第一,數據可能會被頻繁的被使用,這種數據可以緩存。

第二,數據的訪問頻率非常高,或者一個數據的訪問頻率不高,但是它的生存周期很長,這樣的數據最好也緩存起來。

第三是在asp.net中,如果緩存過大的話也會報內存溢出錯誤,特別是如果緩存大的DataSet對象的時候。

根據實際情況來合理利用。如:cache用得過多也會增大服務器的壓力。整頁輸出緩存,又會影響數據的更新。如果真的需要緩存很大量的數據,可以考慮靜態技術。

5. 通用緩存類

最后慣例,整理一個緩存的通用類,以供小伙伴們調用

命名空間:KaJiMao.Common

類名:CacheHelper

文件名:CacheHelper.cs

using System;using System.Web;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace KaJiMao.Common{    /// <summary>    /// Cache通用類    /// Yubinfeng    /// Date:2015/07/16    public class CacheHelper    {        /// <summary>        /// 獲取數據緩存        /// </summary>        /// <param name="CacheKey">鍵</param>        public static object GetCache(string CacheKey)        {            System.Web.Caching.Cache objCache = HttpRuntime.Cache;            return objCache[CacheKey];        }        /// <summary>        /// 設置數據緩存        /// </summary>        public static void SetCache(string CacheKey, object objObject)        {            System.Web.Caching.Cache objCache = HttpRuntime.Cache;            objCache.Insert(CacheKey, objObject);        }        /// <summary>        /// 設置數據緩存        /// </summary>        public static void SetCache(string CacheKey, object objObject, TimeSpan Timeout)        {            System.Web.Caching.Cache objCache = HttpRuntime.Cache;            objCache.Insert(CacheKey, objObject, null, DateTime.MaxValue, Timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);        }        /// <summary>        /// 設置數據緩存        /// </summary>        public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)        {            System.Web.Caching.Cache objCache = HttpRuntime.Cache;            objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration);        }        /// <summary>        /// 移除指定數據緩存        /// </summary>        public static void RemoveAllCache(string CacheKey)        {            System.Web.Caching.Cache _cache = HttpRuntime.Cache;            _cache.Remove(CacheKey);        }        /// <summary>        /// 移除全部緩存        /// </summary>        public static void RemoveAllCache()        {            System.Web.Caching.Cache _cache = HttpRuntime.Cache;            IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();            while (CacheEnum.MoveNext())            {                _cache.Remove(CacheEnum.Key.ToString());            }        }    }}
View Code

==============================================================================================

返回目錄

<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>

<對本系列文章閱讀有困難的朋友,請先看《.net面向對象編程基礎》>

<轉載聲明:技術需要共享精神,歡迎轉載本博客中的文章,但請注明版權及URL>

.NET 技術交流群:467189533 .NET 程序設計

==============================================================================================


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人巨大精品欧美一区二区一视频| 欧美日韩成人在线播放| 欧美一级高清免费播放| 欧美电影第一页| 色综合久久久久久中文网| 欧美极度另类性三渗透| 亚洲男人的天堂在线播放| 国产z一区二区三区| 久久97久久97精品免视看| 欧美午夜www高清视频| 中文字幕精品在线视频| 日韩中文字幕国产精品| 国产脚交av在线一区二区| 日韩激情在线视频| 在线观看视频99| 九九视频直播综合网| 国产成人综合精品| 国产一区二区三区三区在线观看| 日韩av日韩在线观看| 4438全国亚洲精品在线观看视频| 亚洲精品电影网站| 国产一区二区激情| 日日骚av一区| 国产91色在线|免| 69av在线播放| 欧美在线视频网站| 在线观看欧美日韩| 91免费视频网站| 国内精品400部情侣激情| 日韩欧美一区二区三区| 亚洲最大中文字幕| 亚洲无线码在线一区观看| 久久久久久久久久久成人| 亚洲电影天堂av| 97超视频免费观看| 亚洲人在线视频| 亚洲性视频网站| 2019亚洲男人天堂| 国产精品美女久久久久久免费| 亚洲精品久久久一区二区三区| 久久久精品视频在线观看| 欧美亚洲国产成人精品| 国产v综合ⅴ日韩v欧美大片| 久久久久久九九九| 久久久久中文字幕| 欧美日本亚洲视频| 亚洲片在线资源| 色综合老司机第九色激情| 91在线视频精品| 91丝袜美腿美女视频网站| 国产精品亚洲精品| 91久久久久久久一区二区| 欧美激情videos| 日产日韩在线亚洲欧美| 精品亚洲一区二区三区四区五区| 国产精品亚洲自拍| 久久久国产一区二区三区| 97在线免费观看| 亚洲激情电影中文字幕| 久久91亚洲人成电影网站| 国产情人节一区| 国产日韩精品一区二区| 97人洗澡人人免费公开视频碰碰碰| 国外成人性视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品自拍网| 8x海外华人永久免费日韩内陆视频| 欧美一区二区三区……| 亚洲欧美日韩高清| 日韩h在线观看| 亚洲影院色在线观看免费| 欧美激情网站在线观看| 国产精品黄色影片导航在线观看| 精品高清一区二区三区| 91嫩草在线视频| 美女精品视频一区| 欧美日韩亚洲精品内裤| 国产精品爽爽爽爽爽爽在线观看| 久久天天躁日日躁| 成人h片在线播放免费网站| 久久中文精品视频| 成人欧美一区二区三区在线| 欧美精品在线免费观看| 精品伊人久久97| 欧美肥臀大乳一区二区免费视频| 日韩av在线免费观看| 中文字幕亚洲一区二区三区| 这里只有精品视频在线| 欧美一性一乱一交一视频| 久久久www成人免费精品| 最近中文字幕日韩精品| 欧美在线影院在线视频| 国产97在线亚洲| 国产一区二区美女视频| 精品无人国产偷自产在线| 国产精品一区二区电影| 深夜精品寂寞黄网站在线观看| 亚洲iv一区二区三区| 日韩欧美视频一区二区三区| 欧美日韩激情美女| 在线a欧美视频| 亚洲欧美另类中文字幕| 日韩女在线观看| 亚洲一区二区三区成人在线视频精品| 91久久久久久久久久| 亚洲人成电影在线播放| 色777狠狠综合秋免鲁丝| 欧美天天综合色影久久精品| 久久精品夜夜夜夜夜久久| 亚洲成人av片| 国产色婷婷国产综合在线理论片a| 亚洲小视频在线| 日韩免费av在线| 国产91ⅴ在线精品免费观看| 国产精品第100页| 国产精品一香蕉国产线看观看| www.日本久久久久com.| 国产噜噜噜噜噜久久久久久久久| 97超碰蝌蚪网人人做人人爽| 欧美尺度大的性做爰视频| 热久久视久久精品18亚洲精品| 精品国产一区二区三区久久狼黑人| 人人做人人澡人人爽欧美| 91精品国产沙发| 久久精品视频一| 日韩在线观看你懂的| 91免费精品视频| 国产欧美日韩丝袜精品一区| 色悠悠国产精品| 尤物精品国产第一福利三区| 亚洲日本aⅴ片在线观看香蕉| 久久免费福利视频| 91色精品视频在线| 欧美激情一区二区三区高清视频| 国产精品v片在线观看不卡| 久久久久久亚洲| 亚洲国产精品系列| 午夜精品一区二区三区视频免费看| 国产做受高潮69| 亚洲综合在线小说| 深夜福利日韩在线看| 91爱视频在线| 91精品国产色综合| 久久高清视频免费| 欧美视频裸体精品| 亚洲国产精品人人爽夜夜爽| 久久九九国产精品怡红院| 韩国福利视频一区| 亚洲精品免费在线视频| 国语自产精品视频在线看一大j8| 国产日韩欧美视频在线| 欧美电影在线观看| 亚洲成人动漫在线播放| 中文字幕日韩电影| 国产欧美日韩免费看aⅴ视频| 国产欧美日韩中文字幕在线| 国产日韩视频在线观看| 日韩免费观看网站| 国产精品美女呻吟| 色偷偷88888欧美精品久久久| 国产精品青青在线观看爽香蕉| 国产欧美亚洲视频| 岛国av一区二区| 2019中文字幕免费视频|