2011-09-07 60 views
2

我想知道如果有什麼(1)由輸出緩存提供者,目前船在Azure的AppFabric的SDK支持的描述:Azure AppFabric輸出緩存是否支持通讀或編程無效?

通常,當一個GET請求失敗的客戶端負責 加載失蹤來自慢速存儲的數據(例如數據庫,文件 服務器或遠程服務)並填充緩存。這會使請求所需的往返次數增加三倍,並引入競爭條件的可能性 。與通讀支持打開 AppFabric本身使次呼叫減緩存儲。 AppFabric 通過定製實現抽象類 DataCacheStoreProvider獲得此能力。

的「下一步是什麼」第(3)似乎表明,它不是:

此外,高速緩存會話狀態提供成功 場景與ASP.NET導致在能力與高速緩存 準後寫和讀通過查詢請求,以便 緩存可以成爲操縱數據的主要方式,同時讓 相關的查詢,更新後端數據層。

我們將評估這些和其他功能可能列入 未來的Windows Azure AppFabric緩存的版本。同時,我們鼓勵您嘗試當前的緩存服務 實現,並讓我們知道它如何爲您工作。

是否有任何其他機構以編程方式)無效和b)替換緩存頁面不讓它自然重新水合通過客戶端請求(這可能會導致負荷下的問題,因爲所有的請求的比賽重新水合元素)?

其他記錄差異瓦特/的Windows Server(4):

ASP.NET緩存

的Windows Azure AppFabric的同時提供了會話狀態提供者和 輸出緩存提供。此提供程序與第一個Windows Server AppFabric版本發貨 的提供程序不同。它還提供 附加功能。因此,仔細按照 的說明正確修改用於Windows Azure AppFabric的web.config文件 是非常重要的。有關更多信息,請參閱使用用於AppFabric的ASP.NET 4高速緩存提供程序 。

不可緩存功能

的Windows Azure AppFabric的支持緩存的一個子集功能在Windows Server AppFabric的 可用。以下列表描述了 其中的一些差異。

通知

通知不會在Windows Azure的AppFabric緩存的支持。 這也意味着您不能使用通知來使 本地緩存失效。在Windows Azure AppFabric中,本地緩存只能使用基於超時的 失效策略。有關Windows Server AppFabric中的 通知功能的詳細信息,請參閱緩存 通知(Windows Server AppFabric緩存)。

過期和逐出

默認情況下,在Windows Azure的AppFabric的緩存項不會過期。 這意味着當您超出最大緩存大小時,緩存中最少使用的項目會被逐出。與Windows Server AppFabric不同,無法更改此默認到期設置 或值。但是,如果使用明確的 到期時間(例如10分鐘)將項目添加到高速緩存,則緩存將遵守此 到期值。這可以通過添加 和Put方法的各種過載來完成。請注意,ASP.NET提供程序自動使用這些重載提供會話狀態的顯式超時和輸出緩存。

Windows Azure AppFabric緩存不支持在緩存中禁用驅逐 。在內存壓力下,物品總有可能被驅逐。應用程序應設計爲預計項目 可能會丟失,並且需要隨時重新加載。如果對於應用程序需求緩存太小,則可以從Windows Azure平臺管理門戶中動態增加 。

有關Windows Server AppFabric中過期和驅逐的更多信息,請參閱過期和驅逐(Windows Server AppFabric 高速緩存)。

高可用性

的Windows Azure AppFabric緩存不支持高可用性 功能。有關Windows服務器AppFabric中的高可用性的詳細信息,請參閱高可用性(Windows Server AppFabric 高速緩存)。

地區和標籤

的Windows Azure AppFabric緩存不支持用戶創建的區域 或基於標記的搜索。

API支持

在大多數情況下,你可以使用相同的API編寫高速緩存客戶端 使用的Windows Azure AppFabric中或Windows Server AppFabric的。由於兩種解決方案之間的差異,有一些例外情況有 。有關適用於Windows Azure AppFabric 緩存客戶端的API的詳細回顧,請參閱API參考(Windows Azure AppFabric緩存)。

參考文獻:

(1)在Windows Server AppFabric的增加通讀和後寫支持: http://www.infoq.com/news/2011/08/AppFabric-CTP

(2)可擴展輸出緩存與ASP.NET 4(VS 2010和.NET 4.0系列): http://weblogs.asp.net/scottgu/archive/2010/01/27/extensible-output-caching-with-asp-net-4-vs-2010-and-net-4-0-series.aspx

(3)介紹Windows Azure AppFabric高速緩存服務:
http://msdn.microsoft.com/en-us/magazine/gg983488.aspx

(4)緩存之間的區別內部部署和雲中的:
http://msdn.microsoft.com/en-us/library/gg185678.aspx

回答

0

當你引用文檔表示沒有辦法無效使用Windows Azure的共享緩存服務的本地緩存(以前稱爲Windows Azure AppFabric緩存)。這是因爲該服務不支持通知。如果您沒有對該服務使用本地緩存選項,則可以通過顯式刪除緩存項目來使其無效。這將從服務中的分佈式緩存中移除它,並且所有請求它的實例都不會得到任何東西。

至於替換緩存頁面,我相信你可以通過直接更新緩存來做到這一點;但是,考慮到從緩存中刪除某些內容時會發生的因素數量,您可能無法100%保證頁面最終不會因壓力而退出,並且無論如何都會發生競爭。

如果你想更多地控制緩存,我強烈建議查看新的Windows Azure專用緩存預覽。直到預覽,所以你可能不想冒着生產工作的風險,但它會讓你對緩存有更多的控制。

相關問題