У меня есть сайт, где я кеширую много информации.Я вижу противоречивую информацию о хранении вещей в кэше 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>;
Будет ли влияние на производительность сильно отличаться (учитывая, что я предполагаю, что все находится в памяти в любом случае?)