在 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
,但是我的代码可以作为测试操作成功的良好替代方案吗? (对于放置/删除方法)。
谢谢
最佳答案
Remove
方法返回 boolean
标志,指示给定 key
标识的项目是否已被删除 (true
)或否(false
)。
因此,如果您想检查操作结果,我建议采用以下方法:
if(mCache.Remove(key))
{
Trace.WriteLine("removed successfully from Azure Shared Cache");
}
就 Put
方法而言,这可能有点复杂。
基本上,如果您的 cache.Put(key, value)
方法成功完成(无异常(exception)),您可以假设您的项目已添加到缓存中。
但是,Azure 缓存项目可以从缓存中逐出(这取决于缓存大小和项目过期时间 - 共享缓存的默认项目过期时间为 48 小时)
因此,为了避免任何“意外”,我建议缓存使用模式如下:
- 通过键从缓存中获取项目
- 如果缓存返回Null,则创建该项目并将其放入缓存
- 对项目执行操作
另外,作为旁注,我建议使用角色内缓存而不是共享缓存服务(主要是因为它更便宜,具有更多功能等)。
关于c# - DataCache 操作 - 验证成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455113/