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