我有一个网站,我缓存了很多信息。我看到有关在 asp.net 缓存中存储内容的信息相互矛盾。
例如,假设我有这个数据结构:
Dictionary<string, List<Car>> mydictionary;
我可以用字符串键将整个内容存储为“MyDictionary”,然后在我拉出对象后向下钻取。
HttpContext.Cache.Add("MyDictionary",
mydictionary,
null,
Cache.NoAbsoluteExpiration,
new TimeSpan(10, 0, 0),
CacheItemPriority.Normal,
null);
var myDict = HttpContext.Cache["MyDictionary"] as Dictionary<string, List<Car>>;
我可以做的另一件事是将它分解并将每个项目分别存储在我的字典中的缓存中(假设缓存无论如何都是字典)。
Dictionary<string, List<Car>> mydictionary;
foreach (var item in mydictionary.Keys)
{
HttpContext.Cache.Add(item, mydictionary[item], null, Cache.NoAbsoluteExpiration, new TimeSpan(10, 0, 0), CacheItemPriority.Normal, null);
}
var myitem = "test";
var myDict = HttpContext.Cache[myItem] as List<Car>;
性能影响是否会有很大不同(假设我假设一切都在内存中?)