【问题标题】:windows azure caching - best practice for checking whether a key exist or notWindows azure 缓存 - 检查密钥是否存在的最佳实践
【发布时间】:2013-01-28 07:06:51
【问题描述】:

在 Windows Azure 缓存 (http://msdn.microsoft.com/en-us/library/windowsazure/hh914161.aspx) 中,当有人尝试获取未缓存的对象(即对象的键不存在)时,会引发 Microsoft.ApplicationServer.Caching.DataCacheException(错误代码:KeyDoesNotExist) )。

除了处理 DataCacheException 之外,有什么方法可以检查键是否正常存在?

谢谢,

【问题讨论】:

    标签: azure azure-caching


    【解决方案1】:

    如果未找到提供的密钥,DataCache.Get(key) 方法将返回 null。

    任何其他需要密钥存在的方法(例如与锁定有关的方法)都会导致 DataCacheException。

    【讨论】:

    • 那么您是否建议在任何其他方法(需要密钥存在)之前调用 DataCache.Get(Key) 以避免 DataCacheException?不是性能开销吗?
    • Azure 缓存旨在提供极低延迟的操作。您是使用共享缓存(旧样式)还是基于角色的缓存(新样式)?我会使用 Get() 调用,并且与所有事情一样测量性能以确保。
    • 感谢您的 cmets,我正在使用基于角色的缓存。为什么你会认为调用 Get() 方法的成本可以忽略不计?由于网络往返成本(可能超过数百毫秒?),我认为它不能被忽略,您怎么看?
    • Get() 调用延迟不容忽视,但我似乎从我的测试中记得它大约为 10 毫秒或更短(这可能是您在 DataCache 上看不到任何异步方法的原因) .同一部署中的实例通常配置在 Azure 数据中心的同一节点上。
    • 你知道处理DataCacheExcpetion的开销(即key-does-not-exist)你认为Get()调用延迟(~10ms)小于异常处理开销吗?跨度>
    猜你喜欢
    • 2010-11-25
    • 2011-09-23
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2022-11-03
    • 2014-07-28
    相关资源
    最近更新 更多