0

我们目前将现有的 Web 应用程序移至 Azure。Azure 缓存非常慢

Azure 中的多实例是否有任何替代缓存机制(比 Azure 缓存更好)?例如,将缓存存储在 Azure 存储或 Azure SQL 中。

谢谢您的意见!

添加

public class AzureCacheService : ICacheService
{
    readonly DataCacheFactory _factory = new DataCacheFactory();

    private readonly DataCache _cache;

    public AzureCacheService()
    {
        _cache = _factory.GetDefaultCache();
    }

    public object Get(string key)
    {
        return _cache.Get(key);
    }

    public void Insert(string key, object obj)
    {
        if (obj != null)
        {
            _cache.Put(key, obj, new TimeSpan(3, 0, 0));
        }
    }

    public void Remove(string key)
    {
        _cache.Remove(key);
    }
}

*** Accessing *** 
IoC.Resolve<ICacheService>().Insert(key, MyObject);

IoC.Resolve<ICacheService>().Remove(key);
4

3 回答 3

2

一般来说,WA 缓存并不慢,特别是如果您打开“本地缓存”(只要数据适合内存,通常应该将延迟降低到 0 毫秒左右)。Memcached 是另一种可能性:http: //blog.smarx.com/posts/memcached-in-windows-azure

您不会发现 WA Caching 和 Memcached 在性能上存在数量级的差异,但根据我的经验,Memcached 的速度要快一些。不过, Memcached将无法击败 WA Caching 中的“本地缓存”功能,因为它实际上没有延迟。(这是没有序列化的进程内数据访问。尽可能高效。)

于 2012-04-27T15:39:09.523 回答
0

我误解了 Windows Azure 缓存是基于 SQL Azure 的,在获取正确的资源后,我能够验证它确实是内存缓存。因此,如果您决定使用 SQL Azure 编写自己的代码,那么您现在已经获得的速度会慢得多,Azure 表存储也是如此。[其余评论已删除]

于 2012-04-27T15:26:01.867 回答
0

您可以使用最近发布的 Windows Azure 缓存(预览版)。它比共享缓存对应物有 5 倍的改进。

链接: http: //www.windowsazure.com/en-us/develop/net/how-to-guides/cache/

于 2012-06-22T12:09:27.207 回答