2012-04-27 67 views
0

我們當前將現有的Web應用程序移至Azure。 Azure緩存是very slowAzure - 多種實例減緩Windows 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); 
+0

你能不能給我們詳細介紹一下到底什麼是您所看到的等待時間(以及你正在使用,對象大小等這些API)?可能有助於確定問題出在哪裏。 – Tom 2012-04-27 17:51:35

+0

儘管最初的啓動可能需要幾秒鐘的時間,但一旦連接完成,它非常快速。我通常會看到10ms以下的延遲。如果它比這慢得多,那麼很可能你做錯了什麼。 – 2012-04-27 18:08:13

+0

Tom&Breishl - 我添加了代碼。 – Win 2012-04-27 18:32:10

回答

2

一般來說,WA緩存是慢,特別是如果你打開「本地緩存」(一般應該將延遲降低到約0毫秒,只要數據擬合在記憶中)。 Memcached是另一種可能性:http://blog.smarx.com/posts/memcached-in-windows-azure

你不會找到在西澳緩存和Memcached的性能之間的訂單數量級的差別,但在我的經驗Memcached是快一點。 Memcached 不會能夠擊敗WA緩存中的「本地緩存」功能,不過,因爲在字面上沒有延遲。 (這是沒有序列化的進程內數據訪問。剛想盡可能高效是可能的。)

+0

本地高速緩存將大量增加讀取時,如果它是你的緩存性能擊中你的本地緩存。但我不認爲它會增加寫入性能,因爲它仍然需要去AppFabric Cache。 – 2012-04-28 01:49:49

+0

肖恩的寫作表現的權利。 – smarx 2012-04-28 02:20:37

0

這是我的誤解,認爲Windows Azure的緩存是基於SQL Azure和採取糾正資源,我能夠確認它肯定是內存緩存後。所以如果您決定使用SQL Azure編寫自己的應用程序,那麼您現在已經獲得的內容會更慢,Azure表存儲也會更慢。 [註釋的其餘部分被刪除]

+1

「Windows Azure緩存後端基於SQL Azure。」你確定嗎?我的理解是,它建立在AppFabric緩存組件(與Windows相同)上,它完全是一個內存緩存。 – smarx 2012-04-27 15:35:15

+0

這只是不正確的。 Azure緩存基本上是Windows Appfabric緩存,它是一個內存緩存。它不涉及SQL Server。 「緩存提供了一種分佈式,內存,應用程序緩存」 - http://www.windowsazure.com/en-us/home/features/caching/ – 2012-04-27 18:06:33

0

可以使用最近發佈的Windows Azure緩存(預覽)。與共享緩存相比,它有5倍的提高。

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

+0

Karthik R - 是的,您可以在新的Windows Azure緩存(預覽)中使用Windows Sever AppFabric功能。因爲當時的答案是正確的,所以我會留下接受的答案。謝謝您的回答! – Win 2012-06-22 14:55:17