0

有什么方法可以将对象放入具有依赖项的缓存中?

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

我知道我可以创建区域和标记项目以创建我的依赖项,但我真的不想这样做,因为区域仅存在于集群中的一个缓存服务器上,这违背了分布式和可扩展缓存解决方案的要点.

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

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

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

4

2 回答 2

1

不,目前 AppFabric API 不支持依赖项。不幸的是,也没有办法按照您建议的方式搜索密钥:-(

于 2012-11-12T10:08:37.343 回答
0

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

正如您所提到的,基于键的依赖项将一个缓存项与缓存中的另一项相关联。当特定项目更改时,它会使相关项目无效。每当从缓存中删除或更新该项目时,关联的对象将过期。基于键的依赖是级联的。例如,如果 key1 依赖于 key2,key2 依赖于 key3,key3 依赖于 key4,那么移除 key4 将导致 key1、key2 和 key3 过期。

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

NCache 是一种分布式缓存软件,它就是这样一种产品,它可以根据您的应用程序需求提供一整套依赖项功能。

于 2013-05-27T06:56:13.453 回答