2010-01-10 82 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