我有兩種方法簡單的WCF服務:寫,讀。第一種方法將簡單的數據存儲在某個存儲中,另一種方法將通過鍵讀取這些數據。WCF服務共享存儲
寫入方法調用後應該可以正確讀取數據。數據也應該在短時間內存儲(可配置,如10分鐘TTL)。
爲不同用戶存儲這些數據的最佳解決方案是什麼?
類似於System.Runtime.Caching/memcached/mongodb?
UPD。任何建議?不理想但很好?
我有兩種方法簡單的WCF服務:寫,讀。第一種方法將簡單的數據存儲在某個存儲中,另一種方法將通過鍵讀取這些數據。WCF服務共享存儲
寫入方法調用後應該可以正確讀取數據。數據也應該在短時間內存儲(可配置,如10分鐘TTL)。
爲不同用戶存儲這些數據的最佳解決方案是什麼?
類似於System.Runtime.Caching/memcached/mongodb?
UPD。任何建議?不理想但很好?
,可以有以下選擇:
1 System.Runtime.Caching
優點:
缺點:
2. WCF Session
優點:
缺點:
優點:
缺點:
4.自我實現的存儲,從文件系統到SQL Server/MongoDB的
優點:
缺點:
根據您的意見答案,你有: 多線程環境,其中數據必須保留,即使它被檢索到 (我假設直到過期時間用完),並且數據量很小,每個項目幾kb; 您將存儲數百個項目,並且即使在服務重新啓動後也需要保留數據(再次,直到過期)。
現在,它取決於 - 生產級系統可能需要容錯, 負載平衡和擴展 - 我會選擇sql server,儘管這意味着更高的開發成本。
如果您需要爲測試/演示目的快速和骯髒的解決方案 - 去與內存緩存(當然,在這種情況下,你將有restart-要求後放棄-persist)。
另一種快速的解決辦法是將存儲在臨時文件,其中關鍵是文件名的數據。這會在重新啓動之間持續數據,但是在安全性和併發性方面會有相同的問題。
它依賴。數據在檢索後是否必須保留?這是在多線程環境中嗎?你想存儲的數據有多大? – RoelF 2013-03-07 13:25:36
多線程環境 - YES;即使檢索數據,數據是否仍然保留 - YES;數據大小很小,每個項目幾kb; – barbarian 2013-03-07 13:57:29
你會存儲數百個項目還是更像數百萬?數據是否需要保留即使IIS主機被回收? – 2013-03-07 21:35:42