Azure缓存写入实现方法 - 何时使用哪个

时间:2013-11-07 06:24:16

标签: caching azure

我曾经调用Put(Key, Value)方法在Azure缓存中设置数据。后来我了解到这种方法可能会在写入期间导致竞争条件,并引入了以下用于将数据设置到缓存中的代码。

                    try
                    {
                        if (GetData(key) == null)
                        {
                            _cache.Add(key, "--dummy--");
                        }

                        DataCacheLockHandle lockHandle;
                        TimeSpan lockTimeout = TimeSpan.FromMinutes(1);
                        _cache.GetAndLock(key, lockTimeout, out lockHandle);

                        if (ttlInMinutes == 0)
                        {
                            _cache.PutAndUnlock(key, value, lockHandle);
                        }
                        else
                        {
                            TimeSpan ttl = TimeSpan.FromMinutes(ttlInMinutes);
                            _cache.PutAndUnlock(key, value, lockHandle, ttl);
                        }
                    }
                    catch (Exception e)
                    {}

这涉及两个IO,而不是前一次调用中的一个。应用程序代码中是否真的需要这种锁定? Azure的缓存框架是否不考虑缓存一致性?在Azure中管理缓存写入的标准方法是什么?何时使用Put和PutAndUnlock?

0 个答案:

没有答案