Asp.net使用快取 (一)

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

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


目錄:

第一篇

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

第二篇

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

正文

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

為何要使用快取

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

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

快取操作

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

  • 寫入

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

  • 讀取

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

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

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

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

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

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

如下面範例

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

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

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

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

此文作者:Daniel Shih(石頭)
此文地址https://isdaniel.github.io/cache-asp-net-1/
版權聲明:本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 3.0 TW 許可協議。轉載請註明出處!


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