Я разрабатываю проект ASP.NET MVC. В моем проекте я выполняю кэширование в памяти некоторых данных для повышения производительности. Что я понимаю в кэшировании памяти, так это то, что оно кеширует данные на сервере, поэтому независимо от того, кто является клиентом, в следующем запросе он загружает данные из кеша, а не из базы данных, а затем отправляет обратно клиентам. Я выполняю кэширование памяти в ASP.NET MVC 5, и оно не работает.
Это метод GetRegions, который я кэширую:
public IEnumerable<Region> GetRegions(){
ObjectCache cache = MemoryCache.Default;
if(cache.Get("regions")==null)
{
IEnumerable<Region> regions = db.Regions;
cache.Add("regions", regions, DateTime.Now.AddDays(1));
return regions;
}
else
{
IEnumerable<Region> regions = (IEnumerable<Region>)cache.Get("regions");
return regions;
}
}
Согласно приведенному выше коду, в первом запросе cache.Get("regions")
будет нулевым. Но во втором запросе он не должен быть нулевым. Но всякий раз, когда я получаю доступ к этому методу, cache.Get("regions")
всегда равно нулю. Правильно ли я делаю кэширование памяти?