2015-02-23 119 views
3

我想緩存一個不超過300個項目的對象數組,它是隻讀數組。 首先我在Redis中用StackExchange.Redis客戶端實現它,然後通過靜態變量實現它。 靜態變量具有更好的性能,並獲得更少的CPU使用率,而不是Redis,但我不知道這是否是好方法?緩存服務器像Redis Vs靜態變量

+0

它總是關於利弊。這個變量是否應該貫穿應用程序的整個生命週期?它會改變嗎? – 2015-02-23 07:01:07

+0

初始化後,這些變量不會改變。 @YuvalItzchakov – Behrooz 2015-02-23 08:34:47

+1

然後,如果你需要一個像redis這樣的鍵值存儲,如果它是從一個單線程應用程序訪問的話,你可以使用'Dictionary ';如果同時訪問它,則可以使用'ConcurrentDictionary '。 – 2015-02-23 08:35:37

回答

1

如果數據確實是靜態的,然後在你可以存儲在Redis的數據,你會平時去Redis的每一次 - 所以它可能會最終有一個本地緩存反正(使用redis作爲二級緩存)。 static可以正常工作,如只讀數組,這在性能方面將無與倫比。但是,如果您開始變更static成員的內容:期待痛苦。

1

在我的一個項目中,我們使用redis進行緩存,並使用本地緩存(不是靜態變量,但也可以使用靜態變量)。

但它確實取決於您的要求。我們使用redis是因爲我們有網絡農場,我們希望在服務器之間共享數據。我們還使用本地緩存(see MemoryCache)來提高性能。