Asp.Net MVC лучший способ обновить кэшированную таблицу - PullRequest
0 голосов
/ 20 апреля 2010

Существуют определенные таблицы, которые часто вызываются, но обновляются редко. Одна из этих таблиц - Отделы. Таким образом, чтобы сохранить обращения к БД, я думаю, что можно кэшировать эту таблицу, учитывая, что таблица имеет очень маленький размер. Однако, как только вы кешируете его, возникает проблема сохранения данных таблицы свежими. Итак, как лучше всего определить, что таблица грязная и, следовательно, требует перезагрузки и как этот код вызывать. Я ищу решение, которое будет масштабируемым. Поэтому обновление кеша сразу после вставки не решит проблему. Если один компьютер вставил запись, все остальные в ферме должны получить уведомление о перезагрузке кэша. Я думал о вызове соответствующего веб-сервиса из T-SQL, но мне не очень понравилась идея использования ресурсов на сервере SQL. Итак, каковы лучшие практики для решения этого типа проблем. заранее спасибо Eddy

Ответы [ 3 ]

0 голосов
/ 20 апреля 2010

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

0 голосов
/ 28 марта 2011

Вот статья, в которой описывается процесс настройки кэша.

http://www.javaworld.com/javaworld/jw-07-2001/jw-0720-cache.html?page=1

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

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

0 голосов
/ 20 апреля 2010

Вы пытались использовать sql-зависимости или кеш-зависимости? Библиотека будет часто опрашивать базу данных, чтобы увидеть, изменились ли данные. Альтернативой является также использование кеш-зависимостей. Вы можете иметь основной объект кэша, и от него зависят дочерние кэши. поэтому при изменении основного кэша дочерние кэши будут обновлены.

Edit: Если вышеприведенное не является решением, вы можете легко использовать memcached.net - wikipedia . Ориентирован на большие сайты, но это решение вашей проблемы.

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