利用緩存來提高網站的性能(Caching to Improve the Performance of Your Website )

您可以提高您站點的訪問速度,那麼就需要用到cache(緩存),通常可以我們使用cache來處理經常檢索的結果或不經常改變的數據結果。

你將學習:

l  如何使用緩存來提高網站的響應速度。

本章介紹的功能:

l  WebCache helper

 

緩存來提高網站的響應

每當人們請求您站點中的頁面時,Web服務器都會做一些工作,以便執行請求。對於其中一些包括有服務器端執行代碼的頁面,Web服務器可能會執行很長時間來完成任務。比如從數據庫中檢索數據。這些任務獲取在較少數量的的請求時並不需要太長的時間,但是如果網上有了大量的流量,所有用戶都進行了獨立請求的時候,會導致Web服務器增加很多的工作,從而使執行速度變的緩慢。這最終會影響到網站的性能。

 

在這種情況下,改善您網站性能的方法之一便是緩存數據。如果您的網站上有在請求時響應的是相同數,且數據並不需要針對個人進行改變,另外在時間上也並不敏感。那麼我們可以將數據緩存,在用戶每次請求時並不在Web服務器上重新計算,而是在第一次訪問時就將數據放到緩存中,在下一次請求時,只獲取緩存中的數據。

 

在一般情況下,您緩存的信息並不經常改變。當你把信息放到緩存,它將存儲在Web服務器上的內存中。你可以指定它應該被緩存多久,從幾秒鐘到幾天。當緩存期限到期,該信息自動從緩存中刪除。

 

注意    緩存中的項目並沒有過期,但可能會因爲其他原因可能會被刪除。例如,Web服務器可能暫時低位運行內存,它回收內存的方法之一便是移出緩存項。正如你看到的,即使你放入緩存信息,你必須檢查,以確保它在您使用時仍然存在。

 

想象您的網站有一個頁面,顯示當前的溫度和天氣預報。爲了得到這種類型的信息,您可能會發送一個請求到外部服務。因爲這個信息並不需要有太大的改變(例如,在兩個小時內)因爲和外部請求服務需要時間和帶寬,所以這是一個很好的被緩存項目。

 

ASP.NET包括WebCache helper,使得您很容易地將緩存功能添加到網站,並添加到緩存中的數據。在此過程中,您將創建一個頁面用來緩存的當前的時間。當然這不是一個真實的例子,因爲當前的時間是不經常改變,而且不需要複雜的計算。然而,這是一個很好的方式來說明緩存在工作。

1.         添加一個新頁面網站名爲WebCache.cshtml

2.         在頁面中添加以下代碼和標記:

@{
   
var cacheItemKey = "Time";
   
var cacheHit = true;
   
var time = WebCache.Get(cacheItemKey);

   
if (time == null) {
        cacheHit
= false;
   
}

   
if (cacheHit == false) {
        time
= @DateTime.Now;
       
WebCache.Set(cacheItemKey, time, 1, false);
   
}
}
<!DOCTYPE html>
<html>
<head>
   
<title>WebCache Helper 例子</title>
</
head>
<body>
   
<div>
       
@if (cacheHit) {
           
@:Found the time data in the cache.
       
} else {
           
@:Did not find the time data in the cache.
       
}
   
</div>
    <div>
       
頁面上的時間被組成存爲: @time.
    </
div>
</body>
</
html>

 

cacheItemKey代碼示例中,使用time定義了一個緩存項,當您緩存數據時,需要爲緩存定義一個名稱,在整個網站中,這個緩存是獨立存在的。

 

該代碼首先讀取time緩存項中的值,如果返回值不爲空,說明代碼從緩存項目中獲取了time緩存,並保存到變量time中。

 

然而,如果緩存條目不存在(也就是說,它是空的),代碼會設置time的值爲當前時間,將它添加到緩存中,並設置一分鐘的到期時限。如果頁面請求沒有在一分鐘之內進行,那麼緩存中的項目將被丟棄。(默認緩存項到期時間是20分鐘)。

 

此代碼說明的問題是您應該總是使用時緩存數據。在您得到的新的緩存之前,總是先檢查WebCache.Get方法是否返回null值。請記住,緩存條目可能因爲其他一些原因已過期或可能已被刪除,所以從來不能保證任何給定的項目在緩存一直存在。

 

3.         在瀏覽器中運行WebCache.cshtml。(請確保頁面在選定的工作區中,然後再運行它。)當您第一次請求頁面時,時間數據不在緩存中,代碼將添加時間值到緩存中。


4.         在瀏覽器中刷新WebCache.cshtml。這一次,時間數據是從緩存中獲取的。請注意你最後一次瀏覽網頁以來的時間一直沒有改變。


5.         等待一分鐘後緩存被清空,然後刷新頁面。再次表明時間數據在緩存中沒有找到,更新的時間將被添加到緩存項中。

 

原文:

http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

資源:

7 - 顯示圖表中的數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章