Asp.net使用快取 (一)

最近回答SQL Server data caching in ASP.NET問題,且有人問我有關快取的問題.

所以小弟打算寫兩篇文章簡單分享我知道的快取​​

目錄:

第一篇

  • 為何要使用快取
  • 快取操作
  • Asp.Net中使用快取 by HttpRuntime.Cache

第二篇

  • 提出介面,提高可替換性
  • 使用泛型改寫快取 讀取方式
  • 使用擴充方法改寫快取

 

正文

快取機制很重要,但有些觀念可能要先釐清楚

1.為何要使用快取

在使用一個東西前,使用的原因很重要.

如果某些資料常常使用,但卻不常改變我們會把資料存在某個空間中(常常會存記憶體,因為記憶體速度快),方便日後讀取使用.

2.快取操作

一般使用快取會有兩個動作,讀和寫
如果是存在記憶體中一般會有期限,因為記憶體資源很寶貴不能一直占用.

  • 寫入

通常會有一個Key,跟要存入物件
就像我們把東西存入保險箱,會拿到一個鑰匙

東西是物件|鑰匙是Key

  • 讀取

讀取就是依照Key讀取我們存入的物件

就像我們要拿保險箱裡的東西需要的鑰匙

  1. Asp.Net中使用快取 by HttpRuntime.Cache

在Asp.net中 有一個靜態物件 HttpRuntime.Cache 可以很方便使用快取

  • 存入快取可以呼叫 Insert 方法

他有多個重載 可以使用最簡單的 Insert(string [key],object [value])

如下面範例

System.Web.Caching.Cache cacheContainer = HttpRuntime.Cache;
string data = "";
cacheContainer.Insert("test1", data);
  • 讀取快取資料

呼叫 Get 傳入Key值即可獲得 Note:如果快取容器沒有此物件會回傳NULL

string cacheData = cacheContainer.Get("data") as string;

小結:這篇簡單介紹快取 下篇會將目前程式碼做改進,變得更優美彈性

Asp.net使用快取 (二)


如果本文對您幫助很大,可街口支付斗內鼓勵石頭^^