Im在單個Web服務器(IIS 8/Windows Server 2012)上跨多個Web應用程序訪問單個緩存的場景掙扎着。正確緩存多個站點的體系結構
目前我們有一個16GB內存的服務器,只運行一個站點。 爲了討論起見,可以說這個網站自己消耗10GB內存(我知道很多)
它將所有內容存儲在System.Web.HttpRuntime.Cache
中,其中檢索速度非常快。一個典型的場景是從這個緩存中檢索10,000個對象,它可以在幾個毫秒內完成。
當我想將另一個web應用程序添加到與服務器上運行的其他站點99.9%相同的服務器並理想地希望訪問此網站中的所有內容以使HttpRuntime.Cache快速點亮時,會變得棘手。
我看到的問題是,這個HttpRuntime.Cache無法在應用程序之間共享,只要我知道。
我試過AppFabric,Redis和NCache,所有分佈式緩存代理,並且它們可以檢索相同的10,000個對象的絕對最快速度大約是2秒,這對於按需網站是沒有好處的。 (順便說一下,林肯定相當肯定這兩秒鐘的1.999是充滿解密這也是非常密集的CPU)
我是否缺少明顯的東西...一個服務器上的兩個Web應用程序訪問緩存不需要昂貴的序列化/反序列化?或者是時候分出一個新的網絡服務器了。