🚫 Ad Blocker Detected

Please disable your AD blocker to continue using this site. Ads help us keep the content free! please press keyboard F5 to refresh page after disabled AD blocker

請關閉廣告攔截器以繼續使用本網站。廣告有助於我們保證內容免費。謝謝! 關閉後請按 F5 刷新頁面

0%

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 許可協議。轉載請註明出處!

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