並行存取方式
Microsoft AppFabric 1.1 for Windows Server 快取 支援開放式與封閉式並行存取模型。以下各節說明快取用戶端方法與這些模型的對應方式。如需有關並行存取的詳細資訊,請參閱並行存取模型 (AppFabric 1.1 快取)。
開放式並行存取模型
在開放式並行存取模型中,對於快取物件的更新並不會取得鎖定。相反地,快取用戶端會先讀取要更新之物件的版本,然後隨著已更新的物件傳送該版本資訊。只有當傳送的版本與物件的最新版本相符時,系統才會更新物件。每次更新物件時都會變更其版本號碼。這樣可防止更新程序覆寫其他人所做的變更。
方法 | 描述 |
---|---|
在設計上,不會取得任何鎖定;若項目存在,則 Get 一律會成功。若該物件正由其他程序更新,則 Get 方法不會等候更新程序完成,而且只會傳回物件的最新版本。 |
|
傳回所有 DataCacheItem 物件。除了已快取的物件與其他資訊 (例如,標記) 之外,也會傳回物件的版本資訊。 |
|
可用來檢查已快取的物件在資料來源中是否已變更。為將網路流量最小化,只有當有較新的版本可用時,才會傳回已快取的物件。 |
|
沒有任何與開放式並行存取相關的多載。Add 有成功與失敗兩種結果。 |
|
透過使用版本資訊做為選擇性參數以支援開放式並行存取;只有當要取代的物件具有相同版本時,Put 方法才會成功。 |
|
透過使用版本資訊做為選擇性參數以支援開放式並行存取;只有當要刪除的物件具有相同版本時,Remove 方法才會成功。 |
封閉式並行存取模型
在封閉式並行存取模型中,用戶端會明確地鎖定物件以執行操作。要求鎖定的其他操作會被拒絕 (系統不會封鎖要求),直到鎖定被釋放。當物件被鎖定時,會傳回鎖定控制代碼 (做為輸出參數)。必須有鎖定控制代碼才能將物件解除鎖定。為避免用戶端在釋放已鎖定的物件之前失敗,我們提供根據逾時來釋放鎖定的機制。已鎖定的物件一律不會到期,但當那些物件在已經過到期時間的情況下被解除鎖定時,它們會立即到期。
注意
不支援跨操作的交易。使用快取的應用程式負責決定鎖定順序並偵測鎖死 (如果有的話)。
警告
任何用戶端都可以使用 Put 方法來取代快取中的已鎖定物件。已啟用快取功能的應用程式必須一律針對使用封閉式並行存取模型的項目使用 PutAndUnlock。
下表顯示可用來鎖定與解除鎖定物件的方法。
方法 | 描述 |
---|---|
傳回並鎖定已快取的物件 (若物件存在)。只要鎖定仍有效,呼叫該相同物件的其他 GetAndLock 方法都會失敗。一般 Get 方法呼叫不會被封鎖,而且總是可存取已快取物件的最新版本。 |
|
更新已鎖定的物件,然後釋放鎖定。從 GetAndLock 取得的鎖定控制代碼是必要參數,而且必須符合已鎖定物件的鎖定控制代碼,才能成功。 |
|
明確地解除鎖定已快取的物件 (假設鎖定控制代碼參數符合已鎖定之物件的該參數)。Unlock 也支援延伸目前項目的到期時間,有助於防止該項目在解除鎖定之後立即到期 (若項目在解除鎖定當時已超過到期時間)。 |
另請參閱
概念
類別概觀
基本快取方法
標記型方法
設定方法
使用基本快取方法
AppFabric 快取概念 (AppFabric 1.1 快取)
2012-03-05