2014-09-19 62 views
0

目前我正在一個大型門戶網站上工作,它顯示的所有信息主要是用戶特定。現在我們遇到了一些性能問題,必須儘快解決它,因爲用戶數量保持不變越來越多。我聽說過mvc4中的緩存,我想知道它是如何有效的在動態網站像門戶和我應該採用什麼樣的緩存方法。是否有任何適得其反的機會?緩存動態門戶

+0

這取決於性能下降的原因。緩存對於這個特定的原因可能不是有效的解決方案。所以你需要確定哪個請求需要更多的時間和原因。只有這樣才能說緩存是否是解決問題的方法。 – Priyank 2014-09-19 10:49:50

+0

我相信有足夠的關於ASP.NET緩存的文檔以及如何以及何時在MSDN中使用它... – 2014-09-19 11:34:12

回答

1

一般理解緩存是有關使資源更接近消費者

爲了選擇使用什麼緩存方法,你應該分析自己的門戶網站潛在的瓶頸是很重要的。例如,如果您的瓶頸是遠程數據庫 - 您可以使用與您的門戶(嵌入式數據庫/內存存儲/鍵值存儲等)在同一臺計算機上運行的一些本地數據庫,或者使用會話請緩存一些用戶數據 - 在這種情況下,資源消費者就是您的MVC應用程序。

在我們的一個項目中,我們遇到了類似的問題,您在描述您的問題。在這種情況下,瓶頸是遠程數據庫,所以我們使用Redis DB實現了SessionState提供程序(因爲負載平衡器,我們無法使用默認會話提供程序),它爲我們解決了問題。

可以執行另一緩存以使數據更接近最終用戶 - 在這種情況下,您可以使用MVC OutputCache,以便您可以將客戶端,服務器端,代理或所有這些數據緩存在一起。

我從自己的錯誤中學到的東西是 - 不要試圖解決尚不存在的問題 - 您現在可以花一個月的時間嘗試實施一些複雜的緩存解決方案,性能數據庫與遠程數據庫同步......但在此特定應用程序級別上不會有任何性能問題。

如果您的應用程序體系結構正確,它將允許您稍後添加緩存而不會有任何重大影響。所以我建議你把你的資源花在正確的應用程序設計和實現上。