DataCache操作 - 验证成功

时间:2013-01-22 09:19:54

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

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,但我的代码是否可以替代测试操作成功? (用于放置/移除方法)。

感谢

1 个答案:

答案 0 :(得分:1)

Remove方法返回boolean标记,指示给定key标识的项目是否已被删除(true)(false)。< / p>

因此,如果您想检查操作结果,我建议采用以下方法:

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

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

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

但是,Azure缓存项可以从缓存驱逐(取决于缓存大小和项目到期时间 - 共享缓存的默认项目到期时间为48小时)

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

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

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