Зависимость кэша AppFabric

Есть ли способ поместить объекты в кеш с зависимостью?

Например, если я помещаю ObjectB в кеш с зависимостью от ObjectA, чтобы, когда срок действия ObjectA истекает или я удаляю его, ObjectB также автоматически удаляется?

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

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

например. Добавить ObjectA с ключом 'ObjectA'
Добавить ObjectB с ключом 'ObjectA_ObjectB'

но затем, когда я хочу, чтобы срок действия всех объектов, зависящих от ObjectA, истек, мне нужно было бы получить на основе поиска по подстановочному знаку ключа. Это возможно?


person David    schedule 12.11.2012    source источник


Ответы (2)


Нет, сейчас в AppFabric API нет поддержки зависимостей. К сожалению, также нет способа искать ключи так, как вы предлагаете :-(

person PhilPursglove    schedule 12.11.2012
comment
Насколько я понимаю, вы можете перебирать элементы кеша, если используете Region в AppFabric. - person Uriah Blatherwick; 09.10.2013

Хотя AppFabric является бесплатным, это первоначальное ценовое преимущество не очень выгодно, если вы хотите создавать масштабируемые приложения, поскольку App Fabric не имеет большого количества функций, таких как функции зависимости от БД.

Зависимость на основе ключей, как вы упомянули, связывает один кешированный элемент с другим элементом в кэше. Он делает недействительным зависимый элемент, когда этот конкретный элемент изменяется. Каждый раз, когда этот элемент удаляется или обновляется из кеша, срок действия связанного объекта истекает. Зависимость на основе ключа является каскадной. Например, если key1 зависит от key2, key2 зависит от key3, а key3 зависит от key4, то удаление key4 приведет к истечению срока действия key1, key2 и key3.

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

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

person Andy H    schedule 27.05.2013