【问题标题】:DataCache operation - validate successDataCache 操作 - 验证成功
【发布时间】:2013-01-22 09:19:53
【问题描述】:

在 Windows Azure 共享缓存中:
假设我执行以下操作:

try
{
  mCache.Remove(key);
  Trace.WriteLine("removed successfully from Azure Shared Cache");
}
catch (DataCacheException e)
{
  WorkerRole.log.Info(e.ToString());
}

是不是说如果代码到达Trace.WriteLine命令,那么操作就成功完成了? (否则,它会抛出DataCacheException

我知道我可以注册到活动CacheOperationCompleted,但是我的代码可以作为测试操作成功的一个很好的替代方案吗? (用于放置/删除方法)。

谢谢

【问题讨论】:

    标签: c# caching azure azure-caching shared-cache


    【解决方案1】:

    Remove 方法返回 boolean 标志,指示由给定 key 标识的项目是否已被删除 (true) 或没有 (false)。

    所以如果你想检查操作结果我建议以下方法:

    if(mCache.Remove(key))
    {
        Trace.WriteLine("removed successfully from Azure Shared Cache");
    }
    

    Put方法而言,这可能有点复杂。

    基本上,如果您的 cache.Put(key, value) 方法成功完成(没有例外),您可以假设您的项目已添加到缓存中。

    但是,Azure 缓存项可以从缓存中逐出(这取决于缓存大小和项过期时间 - 对于共享缓存,默认项过期时间为 48 小时)

    所以为了避免任何“意外”,我建议缓存使用模式如下:

    • 通过键从缓存中获取项目
    • 如果缓存返回 Null,则创建该项目并将其放入缓存中
    • 对项目执行操作

    另外,我建议使用角色内缓存而不是共享缓存服务(主要是因为它更便宜,功能更多等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 2012-09-13
      • 1970-01-01
      • 2021-07-18
      • 2012-01-17
      相关资源
      最近更新 更多