Share via


Azure 受管理快取服務到期與收回

重要

Microsoft 建議所有新的開發都使用 Azure Redis 快取。 如需選擇 Azure 快取供應專案的目前檔和指引,請參閱 哪個 Azure 快取供應專案適合我?

Microsoft Azure快取不會永久保留記憶體中快取的物件。 除了使用 Remove 方法明確從快取中移除之外,快取的物件也可能過期或由快取收回。

到期

快取到期機制可讓快取自動將已快取的物件從快取移除。 使用 PutAdd 方法時,可以為特定快取物件設定逾時值,以決定物件可保留在快取中的時間。 如果快取物件時未提供物件逾時值,快取的物件會使用預設到期時間。 受控快取服務的預設時間為 10 分鐘。

[到期原則] 與 [時間 (分鐘)] 設定一併使用,以判斷快取項目的到期時間,而這些行為會在快取的 [設定] 索引標籤上的管理入口網站中的具名快取層級中設定。

Expiry Policy for Windows Azure Cache Service

到期原則有三種類型:[絕對][滑動][永不]

到期原則 描述

永不

到期已停用。 項目在收回之前都會在快取中。 指定 [永不] 時,[時間 (分鐘)] 必須設為 0

絕對

新增項目到快取時,[時間 (分鐘)] 指定的到期間隔會開始計算。 過了 [時間 (分)] 所指定的間隔後,該項目就會過期。

滑動

每當在快取中存取項目時,會重設 [時間 (分鐘)] 指定的到期間隔。 上一次存取此項目之後,此項目要等到過了 [時間 (分)] 所指定的間隔後才會過期。 這可延長常用項目在快取中的時間。

絕對是預設的到期原則,且 [時間 (分鐘)] 的預設設定為 10 分鐘。 已修正具名快取中每個專案的到期原則,但可以使用Add 和Put多載來自訂每個專案的時間 (分鐘)

注意

請務必注意當與本機快取結合使用時,會有 [滑動] 到期的行為。 如果從本機快取讀取項目時,這不會存取快取上的物件。 所以即使正在從本機讀取項目,伺服器上的項目仍可能到期。

當因為並行存取原因而鎖定物件時,即使物件已到期,系統也不會將物件從快取移除。 只有當物件被解除鎖定,而且已經過其到期時間,系統才會將物件從快取移除。

為避免解除鎖定已到期的物件時物件立即被移除,Unlock 方法也支援延長已快取之物件的到期時間。

您可以在管理入口網站中的快取之 [監控] 索引標籤上檢視快取的健康狀況和效能,包括移出和到期的計量。 如需詳細資訊,請參閱 使用 [監視] 索引標籤監視快取服務

本機快取無效判定

本機快取有兩種互補的失效類型:逾時型失效和以通知為基礎的失效。

提示

當物件儲存在本機快取之後,不論物件是否由另一個用戶端更新,您的應用程式都會使用那些物件 (直到那些物件被判定為無效)。 因此,最好針對甚少變更的資料啟用本機快取。

逾時型無效判定

當物件下載到本機快取之後,它們會一直存在於本機快取,直到達到快取用戶端組態設定所指定的逾時值。 達到此逾時值時,物件會被判定為無效,這樣當用戶端下次要求該物件時,系統會從快取更新該物件。

通知型無效判定

若您的快取用戶端已啟用本機快取,您也可以使用快取通知將本機快取的物件自動判定為無效。 透過「依需求」縮短物件存留期的方式,可以降低應用程式使用過時資料的情況。

注意

標準版和進階版快取供應項目中包括通知,而基本版中則未包括。 如需詳細資訊,請參閱Azure 受控快取服務快取供應專案。

當您使用快取通知時,應用程式會定期檢查快取,判斷是否有新的通知可用。 此檢查間隔稱為輪詢間隔,預設是 300 秒。 輪詢間隔是在應用程式組態檔中指定,單位為秒。 請注意,即使使用通知型無效判定,逾時仍適用於本機快取中的物件。 這樣可以讓通知型無效判定彌補逾時型無效判定的不足。

如需詳細資訊和範例,請參閱Azure 受控快取服務的本機快取

收回

為維持記憶體容量可供每個快取使用,系統支援「最近最少使用」(LRU) 收回。 當記憶體使用量接近您快取供應項目的大小時,系統會將物件從記憶體移出 (不論物件是否已到期),直到解除記憶體不足的壓力。

警告

如果您停用移出,您會經歷調整配置的風險。 在這種情況下,記憶體已超出閾值,但無法緩和記憶體不足的情形。 當用戶端嘗試在此狀態中新增項目至快取,則會收到例外狀況,直到解決此問題。

您可以在管理入口網站中的快取之 [監控] 索引標籤上檢視快取的健康狀況和效能,包括移出和到期的計量。 如需詳細資訊,請參閱 使用 [監視] 索引標籤監視快取服務

收回有兩個設定: 已啟用停用。 移出會在快取的 [設定] 索引標籤中的 [管理入口網站] 的具名快取層級中設定,且預設設定為 [啟用]

Eviction Policy for Windows Azure Cache Service

使用程式碼指定到期與移出設定

您可以使用下列方法來覆寫快取中的預設設定:

  • AddPut方法提供多載,可讓您只針對新增至快取的物件指定到期逾時值。

  • PutAndUnlockUnlock方法提供多載,可讓您在解除鎖定物件之後擴充物件的到期時間。

  • ResetObjectTimeout方法可讓您明確擴充物件的存留期,並覆寫快取的到期設定。

注意

無論是到期或移出設定,在未預期的快取服務關機或失敗的期間並不會保留快取資料。 您的應用程式程式碼必須能夠在無法於快取找到資料時從資料來源重新載入快取。 這通常稱為「找不到快取時的程式設計模式」。

另請參閱

其他資源

Azure 受管理快取服務功能