Удалите элементы HttpRuntime.Cache из другого приложения - PullRequest
1 голос
/ 04 июля 2011

У меня есть приложение администратора, в котором я манипулирую своими объектами в БД, и общедоступное приложение asp.net mvc, которое в основном предназначено для просмотра этих объектов.

Я реализовал простое кэширование для нескольких объектов, которое использует HttpRuntime.Cache.

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

Самым простым решением было создать действие ClearCache (), которое очищает каждую запись в кэше при вызове.

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

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

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Вы можете использовать CacheDependency для этого.

Если есть два отдельных приложения.Вы можете использовать опцию зависимости от файла.(есть также опция зависимости ключа кэша)

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

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

0 голосов
/ 18 декабря 2011

Я рекомендую иметь кеш SQL-зависимостей для каждой таблицы или выбирать запрос для записей, которые предполагается обрабатывать вместе. Вы можете рассмотреть возможность создания отдельных записей кэша для некоторых разделов (например, если у вас есть данные по конкретной стране, храните данные каждой страны в отдельной записи кэша с соответствующей зависимостью SQL).

...