2017-04-04 68 views
0

我在Windows應用程序中使用System.Runtime.Caching(c#)C#窗口應用程序的緩存服務器

這對單個機器正常工作。現在我想在不同計算機上運行的多個實例之間共享緩存。

所以我想使用Memcached的或Hazelcast危

任何C#實現或想法/結果如何工作。請注意我正在爲Windows應用程序執行此操作。任何其他建議也是受歡迎的。

感謝

+1

Redis一路! – zaitsman

+0

在這種情況下,Redis緩存是最佳選擇。 –

+0

當你需要查詢能力時,Redis是可憐的選項之一 –

回答

2

使用緩存在內存中,需要的以下用例清醒的認識:

  1. 難道只有一個內存轉儲?
  2. 是否需要查詢能力,如IQueryable,由框架提供,如實體框架爲Sql Server

如果只有內存轉儲然後Redis, MemCache都很好,因爲他們只是將數據存儲在內存中的二進制,反序列化在客戶端的位置,如果你要查詢大量的數據,這是不好的,一旦取出,並希望在源代碼處理過濾,分類和分頁。

如果需要IQueryable處理,然後檢查了ApacheIgnite.Net. Hazelcast and ScaleOut,從他們的我發現Apache的點燃是最先進的,因爲它只是不支持Expression trees, via IQueryable,也Ansi Sql,這是超過其他非常大的優勢緩存

而且另一點仍然存在,爲什麼不是由現代在存儲系統取代SQL Server或類似的數據庫就像VoltDB或文檔DB像Raven,因爲它們更快,以及整合及完全排除需要單獨的緩存

+0

我正在使用MySql。在這個時候,遷移是不可能的。我只需要一個內存轉儲。 –

+0

考慮[Apache Ignite.Net](https://apacheignite-net.readme.io/docs),這在我的理解中比Redis更好。甚至可以兼容未來的要求。 –

+0

謝謝我正在檢查Apache Ignite –

2

我會建議你使用Redis用於緩存目的。
下面是Redis的一個很好的C#庫:ServiceStack.Redis

+0

使用Redis,它會被安裝爲Windows服務? –

+0

將它安裝在具有不同Windows操作系統版本的客戶端位置上是多麼容易 –

+0

不應該是一個問題,但看看這可能是一個付費客戶端,一個由Stack Overflow提供免費 –

相關問題