AppFabric缓存依赖性

问题描述 投票:0回答:2

有什么方法可以将对象与依赖项放到缓存中?

例如,如果我将ObjectB依赖于ObjectA放入缓存中,以便当ObjectA过期或删除它时,ObjectB也将被自动删除?

我知道我可以创建区域和标记项以创建依赖关系的方式,但是我并不想这样做,因为区域仅存在于集群中的一台缓存服务器上,这会破坏分布式和可扩展性的观点。缓存解决方案。

如果我不能直接添加依赖项,我想我可以通过添加具有某种键命名约定的对象来创建依赖项来解决该问题。

例如使用键“ ObjectA”添加ObjectA使用键“ ObjectA_ObjectB”添加ObjectB

但是当我想使所有依赖于ObjectA的对象到期时,我将需要根据密钥的通配符搜索来获取。这可能吗?

appfabric appfabric-cache
2个回答
1
投票

不,目前,AppFabric API中不支持依赖项。不幸的是,没有一种方法可以按照您建议的方式搜索键:-(


0
投票

尽管AppFabric是免费的,但是如果您想构建可扩展的应用程序,则这种最初的成本优势不是很有效,因为App Fabric并没有很多功能,例如数据库依赖功能。

如前所述,基于键的依赖关系将一个缓存的项目与缓存中的另一项目相关联。当特定项目更改时,它将使从属项目无效。每当从缓存中删除或更新该项目时,关联的对象就会过期。基于密钥的依赖性是级联的。例如,如果key1依赖于key2,key2依赖于key3,key3依赖于key4,则删除key4将导致key1,key2和key3到期。

除了基于键的依赖关系之外,还可以使用其他依赖关系,例如基于文件的依赖关系(使缓存的对象依赖于外部文件,并且如果文件被更新或删除,则缓存中的依赖对象也将删除) ,数据库依赖关系(将缓存的项目与数据库同步,因此数据库中的任何更改都会从缓存中删除依赖的缓存对象),自定义依赖关系(您可以根据应用程序逻辑使对象过期)。

NCache that is a distributed caching software是一种这样的产品,可以根据您的应用程序需求提供完整的依赖项功能。

© www.soinside.com 2019 - 2024. All rights reserved.