Реализация кэша для.NET
Мы планируем реализовать управление кешем для веб-сервиса. Вот два варианта, которые мы имеем в списке для кэширования.
- NCache
- AppFabric
Сейчас мы ищем способ сброса данных в кеше, и это то, что мы получили до сих пор: мы собираемся хранить учетные записи и категории на данный момент в кэше. Эти значения будут меняться в разных приложениях, но в одной таблице в одной базе данных.
- Иметь таблицу поиска для каждого типа данных / элемента (Учетная запись, Категория), которые мы будем хранить в кеше.
- Всякий раз, когда есть изменение для значений упомянутого типа, добавьте запись в одну таблицу (dbo.ResetCache).
- Попросите службу Windows проверить эту таблицу и сбросить кэш, если есть запись.
Дайте мне знать, если вам нужно больше ясности в каких-либо вопросах, и я хотел бы получить ваше предложение для этой реализации.
1 ответ
Я могу прокомментировать это в отношении NCache, так как я использовал его в течение нескольких лет. Исходя из моего опыта, в NCache встроена эта способность, и она называется "Зависимость базы данных". Вы можете установить зависимость между элементами кэша и записями таблицы базы данных, чтобы при изменении данных из таблицы базы данных элемент кэша автоматически удалялся или обновлялся в NCache.
Вам не нужно будет устанавливать какую-либо таблицу "ResetCache", а затем создавать любую службу Windows, которая бы все это выполняла, поскольку она уже является встроенной функцией NCache. NCache имеет зависимости на основе опроса и зависимости от БД (SQL/Oracle), о которых вы можете узнать больше по официальным ссылкам.
Зависимость на основе опроса: http://www.alachisoft.com/resources/docs/ncache/prog-guide/polling-based-dependency.html Зависимость sql: http://www.alachisoft.com/resources/docs/ncache/prog-guide/sql-dependency.html зависимость от Oracle: http://www.alachisoft.com/resources/docs/ncache/prog-guide/oracle-dependency.html
Надеюсь, это поможет.