Кэширование данных в ASP.NET MVC - PullRequest
0 голосов
/ 28 августа 2009

Приветствую земляков.

Я исследую методы кэширования данных, извлеченных из различных таблиц базы данных, с использованием ASP.NET MVC. У нас есть огромное количество данных, которые обновляются только один раз в день и с тех пор являются статичными. Это может варьироваться, но обычно это такие вещи, как список пользователей (сотрудников), отделов, офисов, мест, в которых мы находимся и т. Д. И т. Д.

Мой вопрос: как, черт возьми, вы извлекаете данные? Где вы храните это? (текстовый файл или в реальном коде?) Что определяет необходимость обновления кэша? Я бы предпочел объектно-ориентированный подход, чтобы я мог рассматривать строки данных как объекты. У меня уже есть модель, которую я создал вручную, используя LINQ в своем приложении MVC. Кроме того, как мне проверить, не загрязнен ли кеш? Должна ли база данных что-то делать или приложение должно что-то делать? Например, когда строка обновляется, должен ли триггер базы данных пойти и сделать что-то, чтобы указать, что изменение было внесено (возможно, оно могло записать текстовый файл?), Или мое приложение должно быстро проверить, изменилось ли что-нибудь? Я понимаю, что есть много-метод, но есть ли рекомендуемый?

Примите во внимание, что у меня нулевой опыт кеширования, так что будьте осторожны;)

Ответы [ 2 ]

0 голосов
/ 28 августа 2009

Как и другие упомянутые, вы, вероятно, должны использовать Cache и аннулировать Cache с зависимостью от таблицы.

Одна вещь, которую вы должны спросить себя, как вам нужно запрашивать ваши данные. Если для этого вам нужны возможности sql, то кеш может помешать вам. Если вам нужно отфильтровать, разбить на страницы и отсортировать данные, вам нужно решить, где вы будете это делать: в sql или linq после получения результата из кеша. Ответ зависит главным образом от времени, необходимого для запуска запроса для набора результатов.

0 голосов
/ 28 августа 2009

Либо храните статический объект (Array, List, Hashmap и т. П.) Со всеми элементами данных для каждого типа данных (массив для сотрудников, другой для отделов и т. Д.), Либо используйте серверный кэш и сохраняйте их. контейнеры данных внутри него, используя свой собственный определенный ключ. Использование Cache довольно простое и наиболее часто используемое.

Использование объекта Cache также позволяет указать срок действия (абсолютный или синхронизированный по последнему касанию клавиши) и зависимость кэша (где можно сбросить элементы кэша на основе файла FS).

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

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