Что такое ASP. NET Микро-кеширование? - PullRequest
0 голосов
/ 30 января 2020

Что такое ASP. NET MVC Микро-кеширование?

В чем преимущества и недостатки одно-секундного кэша?

Как лучше всего реализовать микро-кэширование в ASP. NET MVC проекте с C#?

Просто добавьте [OutputCache(Duration = 1)] или ...?

1 Ответ

1 голос
/ 31 января 2020

Односекундный кеш позволяет избежать запроса большого числа клиентов и одновременного выполнения запроса к базе данных.


Если кеш не используется, когда большое количество запросов отправляется на сервер по адресу В то же время, это приведет к снижению производительности сервера.

И поскольку время кэширования не увеличивается, страница всегда будет получать данные sh каждую секунду.

Кэш-память с коротким временем имеет преимущества как , он может обрабатывать большие запросы одновременно, кроме того, получая данные fre sh каждую секунду.

Но, с другой стороны, кэш-память короткого времени не может долго хранить данные.


И ASP. NET MVC предоставили атрибут кэша страницы клиент / сервер, просто добавив атрибут действия (или весь контроллер) выше. Он будет кешировать все действия (или контроллер).

Пример:

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        [OutputCache(Duration = 3)]
        public ActionResult Index()
        {
            return View();
        }
    }
}

Этот код будет кешировать это действие на 3 се c и OutputCache по умолчанию Location равно Any (кеш cl inet и сервер).

кеш на стороне клиента:

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        [OutputCache(Duration = 3, Location=OutputCacheLocation.Client)]
        public ActionResult Index()
        {
            return View();
        }
    }
}

кеш на стороне сервера:

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        [OutputCache(Duration = 3, Location=OutputCacheLocation.Server)]
        public ActionResult Index()
        {
            return View();
        }
    }
}

Кроме того, добавляем VaryByParam свойство let cache может варьироваться в зависимости от параметра. В том же действии пользователь, использующий другой параметр, получит другой кеш, тот же параметр получит ту же версию кеша.

Это можно использовать для кеша, подобного странице информации о продукте.

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        [OutputCache(Duration = 3, VaryByParam = "id")]
        public ActionResult ProductDetail(int id)
        {
            ViewBag.detail = id;
            return View();
        }
    }
}

OutputCache имеет многие свойства и функции, вы можете посетить MSDN получить дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...