iT邦幫忙

9

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使用快取 (二)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
暐翰
iT邦大師 1 級 ‧ 2018-07-07 14:08:12

簡潔明瞭/images/emoticon/emoticon12.gif
常看到大大在S.O幫助別人解答,真的很強。

石頭 iT邦高手 1 級 ‧ 2018-07-07 16:35:13 檢舉

謝謝!!在S.O可以看到很多高手有不同的想法和思維,可以開闊眼界
最近也看暐翰大也在S.O幫助不少人,希望台灣越來越多IT人也可以加入S.O社群/images/emoticon/emoticon12.gif

0
w4560000
iT邦研究生 5 級 ‧ 2018-07-20 09:57:33

請問這是disk cache 還是 memery cache?

石頭 iT邦高手 1 級 ‧ 2018-07-20 17:45:58 檢舉

Memery cache.

我要留言

立即登入留言