国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

WisDom.Net 框架設計(三) 數據緩存

2019-11-17 01:30:18
字體:
來源:轉載
供稿:網友
WisDom.Net 框架設計(三) 數據緩存

WisDom.Net --數據緩存

1.幾種緩存方式

1.靜態全局變量

C#靜態變量使用 static 修飾符進行聲明,在類被實例化時創建,通過類進行訪問不帶有 static 修飾符聲明的變量稱做非靜態變量,在對象被實例化時創建,通過對象進行訪問一個類的所有實例的同一C#靜態變量都是同一個值,同一個類的不同實例的同一非靜態變量可以是不同的值。靜態函數的實現里不能使用非靜態成員,如非靜態變量、非靜態函數等。

2.System.Runtime.Caching 中緩存類庫

這個是.Net 4.0新出的一個命名空間,提供緩存對所有 .NET framework 應用程序 (而不僅僅是 asp.net) 進行訪問,高速緩存是可擴展的。您 可以創建自定義高速緩存提供程序。例如,您可以不使用默認的內存高速緩存引擎,而是創建自定義提供程序,在數據庫、自定義對象或文件系統中存儲高速緩存數據。具體參見MSDN.這里不展開講

3.頁面緩存,(顯然這里不合適)

2.WisDom.net.DataCahce 設計構想

1.我們設計數據緩存基類如下。這里使用模板模式(附上基類的代碼希望大家指正)

 public abstract class DataCacheCoomon<T>    {        PRotected  List<T> DataCacheDict = null;        private static object _obj = new object();        public  DataCacheCoomon()        {            if (DataCacheDict==null||DataCacheDict.Count == 0)            {                lock (_obj)                {                    if (DataCacheDict == null || DataCacheDict.Count == 0)                    {                        DataCacheDict = new List<T>();                        GetDataFromDb();                    }                }            }        }        protected abstract void GetDataFromDb();        /// <summary>        /// 增加數據緩存        /// </summary>        /// <param name="dataItem"></param>        public void AddDataCache(List<T> dataItem)        {            foreach (T data in dataItem)            {                DataCacheDict.Add(data);            }        }        /// <summary>        /// 刪除數據緩存        /// </summary>        /// <param name="dataItem"></param>        public void DelDataCache(List<T> dataItem)        {            foreach (T data in dataItem)            {                DataCacheDict.Remove(data);            }        }        /// <summary>        /// 獲取字典緩存        /// </summary>        /// <returns></returns>        public List<T> GetDataCacheDict()        {            return DataCacheDict;        }            }

2.在具體某個緩存項目時都需要繼承上面的基類

3. 使用并行方式將數據加到MemoryCache 中 示例如下(一個簡單的例子給大家參考,)從緩存中獲取

     ObjectCache objectCache = MemoryCache.Default;//            Parallel.Invoke(() =>            {                CacheItem Iten = new CacheItem("aaa", 1);                objectCache.Add(Iten, new CacheItemPolicy());            },                  () =>                  {                      CacheItem Iten = new CacheItem("Bbb", 1);                      objectCache.Add(Iten, new CacheItemPolicy());                  });


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临湘市| 遂川县| 井冈山市| 五大连池市| 朝阳县| 凌云县| 商洛市| 江陵县| 高碑店市| 延川县| 响水县| 巩义市| 驻马店市| 寿光市| 策勒县| 青阳县| 嘉禾县| 夏河县| 南投县| 屯留县| 黑河市| 泰宁县| 井冈山市| 东宁县| 德保县| 辽宁省| 河源市| 桐乡市| 蛟河市| 弥渡县| 南陵县| 柞水县| 沧州市| 顺平县| 巴塘县| 临安市| 霍林郭勒市| 宣化县| 晋中市| 安顺市| 湖口县|