2012-01-02 29 views
1

我有一個Web應用程序,它將項目存儲在數據庫中。 我決定使用App Farbic緩存來加速性能。 什麼是關於下面(或我應該決定哪個標準)的最佳模式: 將每個項目分別存儲在緩存中。 或將整個列表存儲在緩存中(即一個代表項目列表的鍵)?Appfabric上的緩存模式(整個列表與單個項目)

非常感謝,

約瑟夫

回答

1

這要看情況。有幾個考慮因素。 如果列表可能很大,單個緩存鍵的內容可能會變得非常大(顯然,通過啓用本地緩存可以緩解這個問題)。序列化和反序列化像這樣的大對象圖將消耗客戶端上的時間和資源。 然而,您可能想要這樣做,因爲您的應用程序可能希望在從緩存中解除序列化後,執行linq到列表中的對象查詢。

如果執行對列表中的查詢被明確定義,你可以緩存列表中的多種口味在不同的緩存鍵 - 而不是,你可以有PeopleMalePeopleFemalePeopleAmericanPeopleIrishPeopleFrench等 如果你這樣做你可能有多個下緩存人名單出現在同一個人,你將不得不管理這個。例如,我有一個擁有雙重美國和愛爾蘭公民身份的女性。如果我編輯的人所以從女性的性別變化,使和公民更改爲荷蘭語,就必須確保四個按鍵是無效的PeopleMalePeopleFemalePeopleAmericanPeopleIrish

我上面給出的示例可能會變得棘手,無論它的價值與否都取決於您的確切用例。

在一般情況下,我建議您只使用包含相對非易失性參考數據(國家,地位類型,國籍等)的列表的緩存鍵。

希望這會有所幫助。

+0

感謝您的詳細解答。非常感激 – 2012-01-06 17:14:06