我正在使用MemoryCache(.net 4.0)实现缓存,用于缓存我网站的所有用户都将使用的全局数据。
我的初步方法: 存储一个KeyedCollection,它将使用一个键来保存Customer对象的集合以获取单个对象。此集合最多可包含250个此类对象。每当缓存过期时,我都会重建KeyedCollection并将其添加到缓存中。
新方法 现在,我在想为什么不将每个Customer对象直接存储到缓存中,并将customerid作为查找键。因此,MemoryCache.Default最多有250个这样的Customer对象而不是单个KeyedCollection。 好处:
有关在表现和其他因素方面使用其中一对的想法吗?
答案 0 :(得分:3)
解决方案将取决于您需要将对象作为集合处理的频率。
作为集合存储的原因:
CacheItemPolicy
。这种情况可能不太可能,
然而。 KeyValuePair<string,
object>
)。单独存储的原因:
因此,比较您可能的使用方案,并相应地选择。除非你写了很多.Where
,.Select
等,否则有可能会调用或有理由传递整个集合,然后单独存储将是更好的选择。