【问题标题】:To get the details of tag associated with object when the object is evicted in Appfabric cache当对象在 Appfabric 缓存中被驱逐时,获取与对象关联的标签的详细信息
【发布时间】:2014-12-05 06:01:50
【问题描述】:

我在 C#.net 框架中使用 Appfabric Cache 1.1 版,目前我想在该特定对象被驱逐时获取与该对象关联的标签列表。

经过一番研究,我发现我们可以使用 Appfabric 提供的通知来捕获对象从缓存中删除时的详细信息。

http://msdn.microsoft.com/en-us/library/ff424507(v=azure.10).aspx (也参考了 Hammad Rajjoub 的 Microsoft Windows Server AppFabric Cookbook)

但是从回调函数中获取的详细信息不包含我要检索的标签列表。

获取标签列表的主要目的是删除与这些标签关联的所有其他对象,因为我应该存储在缓存中的数据是相关的。

欢迎任何想法或不同的方法。

【问题讨论】:

  • 项目级回调仅在显式调用 AddItem、ReplaceItem 或 RemoveItem 时调用,而不是在项目因过期或集群内存压力而从缓存中逐出时调用。您要处理哪种情况?
  • @stuartd,我正在尝试处理从缓存中逐出对象、缓存内存超过水印级别(低或高)的情况。因此,根据您的评论,是否有任何其他方法可以在对象被驱逐时知道与该对象关联的标签。谢谢
  • 这应该是可能的,见我的answer to a similar question 但是没有内置的东西可以这样做..
  • @stuartd,感谢您的帮助,将深入挖掘您提到的链接的内容。

标签: c# caching notifications tags appfabric


【解决方案1】:

AppFabric 不提供包含已删除项目的元数据。同样正如@stuartd 提到的,由于驱逐而删除项目时不会调用回调。

除了 Appfabric 之外,还有其他缓存解决方案可以提供此类担忧。像NCache 允许注册item level event notifications 以及指定触发通知时所需的信息类型。您可以注册事件通知以仅获取项目元数据。

NCache 还允许添加与项目的键依赖关系,以将一个项目设置为依赖于任何其他项目。这样,如果由于任何原因删除了被依赖者,所有依赖项都会自动删除。不幸的是,AppFabric 中还没有密钥依赖功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多