Enterprise Library 4.1學習---快取應用程式塊
快取是個啥?以及為啥要用快取就不廢話了,主要是從實用角度講下怎麼用
1.先新增對Microsoft.Practices.EnterpriseLibrary.Caching.dll的引用
2.修改web.config檔案,注意高度部分
...
...
type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=4.1.0.0, Culture=neutral"
name="Cache Manager" />
...
3.使用快取,見下面的程式碼,關鍵地方都加了註釋
using System;
using System.Collections.Generic;
using Microsoft.Practices.EnterpriseLibrary.Caching;
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
namespace CacheTest
{
///
/// 定義要快取的實體類
///
public class MyData
{
public string Name { set; get; }
public int Age { set; get; }
public string Color { set; get; }
}
public partial class _Default : System.Web.UI.Page
{
const string KEYNAME = "myDate";//快取的鍵值
ICacheManager cacheManager;
protected void Page_Load(object sender, EventArgs e)
{
cacheManager = CacheFactory.GetCacheManager();//例項化ICachemanager
}
protected void btnWrite_Click(object sender, EventArgs e)
{
//生成要快取的資料(實際開發中可以是從資料庫查詢出來的資料)
List
new MyData(){ Age=1, Color="Yellow", Name="China"},
new MyData{ Age=2,Color="Black",Name="USA"}
};
AbsoluteTime _ExpireTime = new AbsoluteTime(DateTime.Now.AddSeconds(30));//指定30秒後過期
cacheManager.Add(KEYNAME, _list, CacheItemPriority.Normal, null, _ExpireTime);//加入快取
Response.Write("Cache寫入完成," + DateTime.Now.ToString());
}
protected void btnRead_Click(object sender, EventArgs e)
{
this.R1.DataSource = GetCacheData();
this.R1.DataBind();
Response.Write("Cache載入完成," + DateTime.Now.ToString());
}
///
/// 獲取快取資料
///
///
public List
{
List
if (null == _cacheData)//記得一定要加此判斷(因為快取可能過期)
{
//如果快取資料為空,則重新生成資料,並加入快取(為檢測效果,特地把Color與Name前加了一個"New")
_cacheData = new List
new MyData(){ Age=1, Color="New Yellow", Name="New China"},
new MyData{ Age=2,Color="New Black",Name="New USA"}
};
AbsoluteTime _ExpireTime = new AbsoluteTime(DateTime.Now.AddSeconds(30));//指定30秒後過期
cacheManager.Add(KEYNAME, _cacheData, CacheItemPriority.Normal, null, _ExpireTime);
}
return _cacheData;
}
}
}
前端頁面很簡單
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
值得一提的是,快取是"全域性"性質的,也就是說在一個頁面寫入了快取,另一個頁面也可以讀取(當然:前提是快取未過期的情況下),我們可以利用這個特性把網站中經常使用的資料(比如一些基礎資料)快取起來,其它要用的地方直接從快取讀取,能有效減少對資料庫的訪問。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2801271/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Enterprise Library 4.1--實體驗證程式塊
- flutter 獲取應用快取以及清除快取Flutter快取
- 快應用學習教程-入門
- HTML5 應用程式快取簡介HTML快取
- 學習筆記(4.1)筆記
- Guava學習:Cache快取Guava快取
- Godot 4.1 學習筆記Go筆記
- WebView快取原理分析和應用WebView快取
- Mybatis 二級快取應用 (21)MyBatis快取
- WEB 應用快取解析以及使用 Redis 實現分散式快取Web快取Redis分散式
- WebPack持久快取學習小結Web快取
- mybatis原始碼學習:一級快取和二級快取分析MyBatis原始碼快取
- Util應用框架基礎(七) - 快取框架快取
- Web應用的快取設計模式Web快取設計模式
- (四)Redis 快取應用、淘汰機制Redis快取
- Angular library 學習筆記Angular筆記
- 比特幣學習筆記——————9、競爭幣、競爭塊鏈和應用程式比特幣筆記
- Win10系統如何清理應用商店快取_win10清理應用商店快取的方法Win10快取
- 深入分散式快取 — 學習總結分散式快取
- Javascript快取投毒學習與實戰JavaScript快取
- Android 快取工具 DiskLruCache 學習筆記Android快取筆記
- 從 0 學習 Spring 快取資料Spring快取
- 用程式碼來實踐Web快取Web快取
- Springboot應用快取實踐之:Ehcache加持Spring Boot快取
- 借用workbox實現離線快取應用快取
- redis快取和業務應用瞭解Redis快取
- 超簡單獲取快應用摘要值
- 全面解析快取應用經典問題快取
- Redis應用場景及快取問題Redis快取
- 學習在雲上部署Java應用程式Java
- IIS應用程式池_快取回收快取
- CPU快取學習及C6678快取使用總結(知識歸納)快取
- 解決快取穿透的幾種應用思考快取穿透
- 微信小程式大型系統架構中應用Redis快取要點微信小程式架構Redis快取
- win10應用商店快取已損壞怎麼辦_win10應用商店提示應用商店快取已損壞的解決方法Win10快取
- 【虹科乾貨】Redis Enterprise vs ElastiCache——如何選擇快取解決方案?RedisAST快取
- DBA手記(學習)-library cache pin
- Parallel Pattern Library(PPL)學習筆記Parallel筆記