2012-11-12 294 views
0

有什麼辦法,我可以把對象放入緩存與依賴?AppFabric緩存依賴

例如,如果我將ObjectB放入與ObjectA相關的緩存中,以便當ObjectA過期或我刪除它時ObjectB也會自動被刪除?

我知道我可以通過創建區域和標記項來創建我的依賴項,但我並不真的想這樣做,因爲Regions只存在於羣集中的一個緩存服務器上,這種方式破壞了分佈式和可擴展緩存解決方案。

如果我不能添加直出依賴項我想我可以通過添加我的對象的某種鍵命名約定來創建依賴關係。

例如。使用鍵'ObjectA'添加ObjectA 使用鍵'ObjectA_ObjectB'添加ObjectB

但是當我想過期取決於ObjectA的所有對象時,我需要根據通配符密鑰來獲取對象。這可能嗎?

任何想法或建議?

回答

1

不,現在在AppFabric API中不支持依賴關係。不幸的是,您沒有辦法按照您的建議搜索關鍵字:-(

+0

據我所知,如果你在AppFabric中使用區域,你可以迭代緩存項目。 –

0

儘管AppFabric是免費的,但如果您想要構建可擴展的應用程序(如App應用程序所做的那樣),但此初始成本優勢並不是非常結實沒有很多功能,如數據庫依賴項功能

正如您所提到的,基於密鑰的依賴關係將一個緩存項目與緩存中的另一個項目相關聯,當該特定項目發生更改時,依賴項目無效。如果key1依賴於key2,key2依賴於key3,key3依賴於key4,那麼key4的刪除將導致key1到期,如果key1依賴於key2, key2和key3。

除了基於密鑰的依賴關係之外,還可以使用其他依賴關係,例如基於文件(使緩存的對象依賴於外部文件,並且如果文件被更新或刪除,則緩存中的依賴對象是數據庫依賴關係(將緩存項與數據庫同步,因此數據庫中的任何更改都會從緩存中刪除相關緩存對象),自定義依賴項(可以根據應用程序邏輯過期對象)。

NCache that is a distributed caching software是一種這樣的產品,可根據您的應用需求提供一整套依賴性功能。