2010-01-10 155 views
1

緩存一行數據的意義何在,特別是如果它的生命週期可能需要一次或兩次。或者我應該緩存一切。爲什麼?緩存輕量級數據

謝謝

回答

3

如果這行數據需要5個小時來計算,那麼它可能是值得的。如果需要0.001秒計算,那麼它可能不值得。

大多數緩存系統(包括ASP.NET中的緩存系統)允許您爲正在緩存的項目設置緩存策略。如果計算起來很便宜,則將其標記爲低優先級緩存項。如果它非常昂貴,那麼您可以將其標記爲高優先級,從而儘可能長時間地將其保存在緩存中。

這裏是Cache.Insert過載,使您可以指定相對優先級:

public void Insert(
    string key, 
    Object value, 
    CacheDependency dependencies, 
    DateTime absoluteExpiration, 
    TimeSpan slidingExpiration, 
    CacheItemPriority priority, 
    CacheItemRemovedCallback onRemoveCallback 
) 

以上我們瞭解的情況更精確的答案,我們可以提供的。

一般來說,如果數據很小,並且每個用戶都不建議高速緩存,因爲幾乎不需要保存。

與所有性能方面的考慮一樣,首先定義你的性能目標,然後看看你是否符合它們。如果你不符合他們,那麼你必須測量你的應用程序,看看費用的成本,然後改善這些地方,直到你達到你的目標。

+0

或者可能需要0.001秒,但有1000個用戶訪問它,所以最新的用戶將會有不好的表現,但我實際上是在談論一個特定的場景,其中大多數數據生成便宜並僅與一個用戶相關。我不認爲我應該考慮緩存這個應用程序,除了查找。你怎麼看? – Costa 2010-01-10 19:27:49