我正在使用 MemoryCache (.net 4.0) 实现缓存,以缓存将由我网站的所有用户使用的全局数据。
我最初的方法: 存储一个 KeyedCollection,它将保存一个带有键的 Customer 对象的集合以获取单个对象。此集合最多可包含 250 个此类对象。每当缓存过期时,我都会重建 KeyedCollection 并将其添加到缓存中。
新方法 现在,我在想为什么不将每个 Customer 对象直接存储到缓存中,并将 customerid 作为查找键。因此,与单个 KeyedCollection 相比,MemoryCache.Default 最多有 250 个此类 Customer 对象。好处:
- 效率更高,因为我将直接从缓存中获取 Customer 对象,而无需对 Keyed Collection 执行另一次查找。
- 我只会在第一次请求时将新的 Customer 对象添加到缓存中。相对于预先构建整个缓存而言,这是一种惰性添加。
关于在性能和其他因素方面使用一种与另一种的想法?