2010-03-12 70 views
3

我工作的公司正在尋求實施緩存解決方案。我們有幾個WCF Web服務託管,我們需要緩存某些可以持久保存和讀取的值,而不管客戶端與服務的會話如何。我在看下面的技術:WCF緩存解決方案 - 需要諮詢

  • 緩存應用程序塊4.1

  • WCF TCP服務使用的httpRuntime緩存

  • Memcached的Win32和客戶

  • 微軟AppFabric緩存Beta 2的

我們的測試服務器是帶有IIS6的Windows Server 2003,但是我們的生產服務器是Windows Server 2008,因此任何上述選項都可以工作(我們測試服務器上的AppFabric緩存除外)。

有沒有人有任何這些經驗?此緩存解決方案不會用於存儲大量數據,但需要從頻繁而快速的方式獲取。

在此先感謝。

+1

測試服務器與不同的操作系統和IIS比生產?這很難。無論如何,讓我提出第五個選擇:內存數據庫;完美「從頻繁而快速地獲取」。廉價地說,一個良好實施的SQLite數據庫可以接近匹配純內存數據庫的性能。 – Jay 2010-03-14 03:44:51

回答

3

我們在我們的應用程序中使用內置的HttpRuntime緩存,並且它工作得很好。

這很容易實現,因爲您的服務器上沒有安裝任何東西。此外,轉向AppFabric緩存不應該在今後這麼大。

也就是說,它還帶有一些限制,尤其是如果您的服務不在同一個IIS應用程序內部託管,因爲緩存對象將爲每個緩存對象重複。如果你不打算緩存太多的數據和/或如果你不打算緩存它們很長時間,你應該沒問題,因爲你不會消耗太多的RAM。

您似乎沒有負載平衡的服務器,但在這種情況下,使用HttpRuntime緩存還意味着複製每臺服務器上的緩存。這是你可以通過memcached或AppFabric緩存防止的事情...

+0

謝謝Julien。我們正在使用HttpRuntime緩存作爲解決方案,直到AppFabric緩存出來beta。 AppFabric可能是我們的最終解決方案,因爲它將爲我們提供一個緩存解決方案,當我們轉向負載均衡解決方案時,我們的服務器即將推出。 – Brandon 2010-03-17 15:19:46

0

如果您對緩存策略沒有特殊要求,可以爲需要緩存的服務創建RESTful接口,使用「GET」方法,然後讓瀏覽器處理緩存。

+0

緩存解決方案不會用於結果。它將用於存儲用戶會話信息和索引狀態等內容。 – Brandon 2010-03-12 02:34:03