快取應用程式資料
更新:2007 年 11 月
ASP.NET 具有功能強大且容易使用的快取機制,讓您將建立時需要大量伺服器資源的物件儲存在記憶體中。快取這些類型的資源可明顯改善應用程式的效能。
快取是由 Cache 類別實作,而每個應用程式的快取執行個體都是專用的。快取的存留期 (Lifetime) 會繫結至應用程式的存留期,重新啟動應用程式時,會重新建立 Cache 物件。
Cache 類別是專為方便使用而設計。您可以將項目放在 Cache 中,稍後再使用簡單的索引鍵/值組擷取它們。如需如何執行此工作的範例,請參閱 HOW TO:將項目加入至快取和 HOW TO:擷取快取項目的值。
Cache 類別會提供強大的功能,讓您自訂快取項目的方式和快取的時間長短。例如,當系統記憶體不足時,快取會自動移除不常使用或低優先權的項目,以釋放記憶體。這個技術稱為清除 (Scavenging),也是快取可確定過時資料不會耗用寶貴的伺服器資源的其中一種方法。
您可以指示 Cache 物件在執行清除時,給予某些項目較高的優先權。若要指出項目的重要性,當您使用 Add 或 Insert 方法加入項目時,可以指定其中一個 CacheItemPriority 列舉值。
當您使用 Add 或 Insert 方法將項目加入至快取時,也可以建立項目的到期原則。使用 DateTime 值指定項目將到期 (絕對期限 Absolute Expiration) 的確切時間,就可以定義項目的存留期。此外,可以使用 TimeSpan 值指定滑動期限 (Sliding Expiration),這可讓您根據前次存取項目的時間,指定項目到期之前的已耗用時間。項目一旦過期,就會從快取中移除。除非項目再次加入至快取,否則嘗試擷取其值時,將會傳回 null (在 Visual Basic 中是 Nothing)。
針對儲存在快取中的 Volatile 項目 (例如會定期重新整理資料或僅於固定時間有效的項目),只要資料保持最新,通常可以將到期原則設定為將這些項目保留在快取中。例如,如果您撰寫的應用程式會從其他網站取得資料以追蹤運動競賽的比數,則只要來源網站上的分數不變,都可以快取比賽分數。在這種情形下,您可以根據其他網站更新分數的頻率來設定到期原則。也可以撰寫程式碼,以判斷快取中是否有最新的分數。如果分數尚未更新,則程式碼可以從來源網站讀取分數並快取新的值。
最後,ASP.NET 可讓您根據外部檔案、目錄 (檔案相依性) 或其他快取的項目 (索引鍵相依性),定義快取項目的有效性。如果變更具有關聯相依性的項目,則快取的項目就會失效並從快取中移除。您可以利用這種技巧,在資料來源變更時移除快取中的項目。例如,如果撰寫的應用程式會從 XML 檔案處理金融資料,您可以插入快取中的檔案資料,並維護該 XML 檔案的相依性。檔案更新後,項目會從快取中移除,您的應用程式會重新讀取 XML 檔案,並將重新整理的資料放在快取中。
注意事項: |
---|
Cache 物件包含項目,但不包含項目的內容相關資訊。它只保留這些物件的參考,並提供方法來追蹤其相依性和設定到期原則。 |
如需如何使用這些功能的詳細資訊,請參閱 HOW TO:將項目加入至快取。