:
假设我执行以下操作:
try
{
mCache.Remove(key);
Trace.WriteLine("removed successfully from Azure Shared Cache");
}
catch (DataCacheException e)
{
WorkerRole.log.Info(e.ToString());
}
是否正确地说如果代码到达Trace.WriteLine
命令,那么操作是否成功完成? (否则,它会抛出DataCacheException
。
我知道我可以注册参加活动CacheOperationCompleted
,但我的代码是否可以替代测试操作成功? (用于放置/移除方法)。
感谢
答案 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小时)
因此,为了避免任何“意外”,我建议使用以下缓存使用模式:
另外作为旁注,我建议使用角色内缓存而不是共享缓存服务(主要是因为它更便宜,有更多功能等)。