Обновление кеша при обновлении таблицы базы данных
Я использую AppFabric для управления возможностями кэширования моего сайта. Я бы хотел, чтобы кэш продуктов обновлялся после того, как в моей базе данных произошли изменения в таблице продуктов. Я читал о реализации сквозного чтения, но прочитав о, я нашел:
Read: Called when a cache client requests a cached item that does not currently exist in the associated cache.
Похоже, это не решит мою проблему, поскольку я хотел бы, чтобы кэш продуктов обновлялся после того, как было обнаружено изменение в таблице, во-первых, он не обязательно не будет существовать в кеше. Есть ли способ сделать это, используя возможности AppFabric?
1 ответ
По сути, вы просто хотите иметь механизм SqlCacheDependency. В прошлом это было очень полезно для In Memory Cache.
Однако в кэшировании AppFabric не поддерживается механизм SqlCacheDependency (или, по сути, любая зависимость). Вы должны построить свой собственный...
Кроме того, с помощью провайдера для сквозного чтения кэш обнаруживает отсутствующий элемент и вызывает провайдера для выполнения загрузки данных. Если вы добавили свой товар с истечением 30 минут, поставщик никогда не будет пытаться перезагрузить его до истечения срока его действия.
В конце концов, вы можете попытаться обновить кэш с помощью поставщика Write-Behind. Он будет периодически обновлять вашу базу данных.