緩衝在ASP.NET應用程式中的應用

來源:互聯網
上載者:User

     一個良好的應用程式常會使用緩衝來處理資料以減少對資料庫或者其它儲存系統的訪問次數,目的是減少伺服器的負載,進而使得程式運行更加的高效。

     緩衝有Server-Side和Client-Side兩種。先說伺服器端緩衝,應用程式在讀取資料的時候先會去記憶體檢查是否已建立緩衝,如果已建立緩衝,則直接從緩衝讀取,這樣讀取速度要快很多。資料更新時,同時更新緩衝和資料庫。

      ASP.NET為您提供了一個強大的、便於使用的緩衝機制,用於將需要大量伺服器資源來建立的Object Storage Service在記憶體中。緩衝這些類型的資源會大大改進應用程式的效能。緩衝是由Cache類實現的;緩衝執行個體是每個應用程式專用的。緩衝生存期依賴於應用程式的生存期;重新啟動應用程式後,將重新建立Cache對象。

     設計Cache類是為了便於使用。您可以將項放置在Cache中,並在以後使用簡單的鍵/值對來檢索這些項。有關如何執行此操作的樣本,請參見如何:將項添加到緩衝中和如何:檢索快取項目的值。Cache類提供了強大的功能,允許您自訂如何快取項目以及將它們緩衝多長時間。例如,當缺乏系統記憶體時,緩衝會自動移除很少使用的或優先順序較低的項以釋放記憶體。該技術也稱為清理,這是緩衝確保到期資料不使用寶貴的伺服器資源的方式之一。當執行清理時,您可以指示Cache給予某些項比其他項更高的優先順序。若要指示項的重要性,可以在使用 Add 或 Insert 方法添加項時指定一個CacheItemPriority枚舉值。

     當使用AddInsert方法將項添加到緩衝時,您還可以建立項的到期策略。您可以通過使用DateTime值指定項的確切到期時間(絕對到期時間),來定義項的生存期。也可以使用 TimeSpan 值指定一個彈性到期時間,彈性到期時間允許您根據項的上次訪問時間來指定該項到期之前的已耗用時間。一旦項到期,便將它從緩衝中移除。試圖檢索它的值的行為將返回 null(在 Visual Basic 中為Nothing),除非該項被重新添加到緩衝中。

     對於儲存在緩衝中的易失項(例如那些定期進行資料重新整理的項或那些只在一段時間內有效項),通常設定一種到期策略:只要這些項的資料保持為最新的,就將它們保留在緩衝中。例如,如果您正在編寫一個應用程式,該應用程式通過另一個網站擷取資料來跟蹤體育比賽的比分,那麼只要源網站上比賽的比分不更改,就可以緩衝這些比分。在此情況下,您可以根據其他網站更新比分的頻率來設定到期策略。您可以編寫代碼來確定緩衝中是否是最新的比分。如果該比分不是最新的,則代碼可以從源網站讀取比分並緩衝新值。

     最後,ASP.NET允許您根據外部檔案、目錄(檔案依賴項)或另一個快取項目(鍵依賴項)來定義快取項目的有效性。如果具有關聯依賴項的項發生更改,快取項目便會失效並從緩衝中移除。您可以使用該技術在項的資料來源更改時從緩衝中移除這些項。例如,如果您編寫一個處理XML檔案中的財務資料的應用程式,則可以從該檔案將資料插入緩衝中並在此XML檔案上保留一個依賴項。當該檔案更新時,從緩衝中移除該項,您的應用程式重新讀取XML檔案,然後將重新整理後的資料放入緩衝中。

     注意:Cache對象沒有關於它所包含項的內容的資訊。它只保留對這些對象的引用。它還提供跟蹤它們的依賴項和設定到期策略的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.