У меня есть набор результатов, возвращенный из базы данных, выполнение которого занимает несколько секунд.Для повышения производительности я собираюсь кэшировать результаты до 30 минут.Вызов в базу данных принимает параметр даты, дату в течение следующих 60 дней, которую пользователь выбирает из календаря.
Вот пример кода, который использует список строк для простоты примера:
public List<String> GetConcertList(DateTime selectedDate)
{
String cacheKey;
cacheKey = "ConcertList" + selectedDate.Date.Ticks.ToString();
List<String> concertList = HttpContext.Current.Cache[cacheKey] as List<String>;
if (concertList == null)
{
// Normally this is the call to the database that passes the selected date
concertList.Add("Just a test for " + selectedDate.ToString());
HttpContext.Current.Cache.Insert(cacheKey, concertList, null, DateTime.Now.AddMinutes(30),
System.Web.Caching.Cache.NoSlidingExpiration);
}
return concertList;
}
Есть ли лучший подход, чем использование даты в ключе для кэширования списка каждого дня?