2012-11-12 214 views
0

有什么办法,我可以把对象放入缓存与依赖?AppFabric缓存依赖

例如,如果我将ObjectB放入与ObjectA相关的缓存中,以便当ObjectA过期或我删除它时ObjectB也会自动被删除?

我知道我可以通过创建区域和标记项来创建我的依赖项,但我并不真的想这样做,因为Regions只存在于群集中的一个缓存服务器上,这种方式破坏了分布式和可扩展缓存解决方案。

如果我不能添加直出依赖项我想我可以通过添加我的对象的某种键命名约定来创建依赖关系。

例如。使用键'ObjectA'添加ObjectA 使用键'ObjectA_ObjectB'添加ObjectB

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

任何想法或建议?

回答

1

不,现在在AppFabric API中不支持依赖关系。不幸的是,您没有办法按照您的建议搜索关键字:-(

+0

据我所知,如果你在AppFabric中使用区域,你可以迭代缓存项目。 –

0

尽管AppFabric是免费的,但如果您想要构建可扩展的应用程序(如App应用程序所做的那样),但此初始成本优势并不是非常结实没有很多功能,如数据库依赖项功能

正如您所提到的,基于密钥的依赖关系将一个缓存项目与缓存中的另一个项目相关联,当该特定项目发生更改时,依赖项目无效。如果key1依赖于key2,key2依赖于key3,key3依赖于key4,那么key4的删除将导致key1到期,如果key1依赖于key2, key2和key3。

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

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