c# - DataCache 操作 - 验证成功

标签 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,但是我的代码可以作为测试操作成功的良好替代方案吗? (对于放置/删除方法)。

谢谢

最佳答案

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/

相关文章:

c# - Selenium C# 日志记录首选项未完全实现?

c# - 如何在 C# 中调用 Web 服务方法

python - 无法让 nginx 缓存 uwsgi 结果

.net - 如何在存储数据时加密azure表中的一两个特定列?

c# - 在 Azure Functions 中修改 CosmosDb 文档会触发无限循环

android - Face API 属性 Emotion 给出 Null 对象错误

c# - 更改 Html.TextBox 的大小

c# - 什么是 Humble Object 模式,它何时有用?

sql - 在 Rails 中临时禁用 SQL 缓存?

ruby-on-rails - 在初始化程序中设置 cache_store