Когда и как выполнить кэширование в asp.net mvc? - PullRequest
4 голосов
/ 03 ноября 2010

ОБНОВЛЕНИЕ : я также нашел ncache , который кажется полезным и также пришел к знаю , что stackoverflow использует redis для кэширования.Я также сталкивался с memcached и, кажется, одна из лучших альтернатив.

Я нашел этот , но мне нужно было знать, каким образом я могу кешироватьнекоторые из моих запросов LINQ и использовать их эффективно.Я обнаружил Кэш вывода в asp.net mvc. Есть ли другие способы сделать кеширование?

Я новичок и никогда раньше не занимался кешированием, поэтому я был бы признателен, если бы кто-нибудь мог указать мнеправильное направление здесь?В основном я хочу ответить на вопрос, когда будет необходимо кэширование и как выполнить кэширование в asp.net mvc?

1 Ответ

2 голосов
/ 03 ноября 2010

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

Перед тем как приступить к кешированию, вам необходимо:

(i) профилируйте ваше приложение и запросы, которые оно делает, чтобы увидеть, можете ли вы обратиться к ним напрямую (например, шаблоны запросов, которые являются слишком широкими (выборка столбцов, которые не отображаются)) или слишком глубокими (например, выборка большего количества строк, чем вы отображаете) ), слишком часто (из-за отложенной загрузки может быть больше обращений, чем нужно), слишком дорого (плохой дизайн таблицы может означать больше соединений, чем нужно), или сами таблицы могут быть проиндексированы неправильно;

(ii) целостный взгляд на ваш веб-сайт и опыт пользователя, чтобы увидеть, как вы можете улучшить воспринимаемую производительность (например, установить надлежащие заголовки кеша на уровне браузера для статического контента). Использование AJAX может и представление с постраничной сеткой, такое как jQGrid, может исключить множество обращений к базе данных, пока пользователь просматривает записи, потому что остальная часть содержимого страницы не меняется.

После того, как вы исчерпали решение реальной проблемы, вы можете быть готовы рассмотреть кеширование.

Но прежде чем сделать это, сделайте простой расчет: сколько будет стоить модернизация сервера в сравнении с временем разработки и тестирования, которое вы потратите на внедрение кэширования и отслеживание нечетных проблем устаревшего кэша? Иногда дешевле просто обновить ...

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