2008-10-11 21 views
1

我正在使用ASP.NET MVC處理包含許多圖像的Web應用程序。我希望能夠緩存內存中的圖像以提高性能,但是我想聽聽最好的方法是什麼。如何在Web服務器的內存中爲ASP.NET MVC Web應用程序緩存圖像?

1)圖片均來自URL訪問,像http://www.site.com/album/1.jpg。圖像如何存儲在內存中?他們是否會採用記憶流的形式?

2)如何從內存中訪問圖像並傳送到網絡PAGEE?現在,網頁將使用圖片網址將圖片直接嵌入標籤中。

謝謝!

回答

2

慣於網絡服務器和下游緩存無論如何處理這個靜態資源?不確定會有很多性能上的提升,但對應用或設置一無所知我可能是錯的。

要實現我最好設置奪走了圖像文件名,要麼從磁盤或內存中緩存asp.net擔任它的頁面。

0

感謝您的回覆。我想我在想錯誤的方向。我剛剛發現Flickr使用Squid來緩存圖像。

2

如果圖像是磁盤上的靜態只是文件,然後Beepcake是正確的,IIS就已經被緩存頻繁使用的圖像並從內存中爲他們提供服務。使用單獨的緩存服務器不應該比從內存中提供映像的IIS更快 - 它更多的與可伸縮性有關。一旦你有一個大的服務器場,這意味着你有一組服務器只是處理你的代碼和一組處理靜態圖像的服務器。另外,如果一臺服務器的內容太多而無法緩存,那麼您可以路由請求,以便您的每臺服務器緩存10%的內容。這應該比每個服務器緩存最多使用10%的內容要好得多。

0

如果你想真正好的表現,我建議亞馬遜的CloudFront的。邊緣緩存將爲您提供比內存緩存更好的性能,CloudFront運行nginx,這比靜態文件中的IIS好得多(等等)。

設置邊緣緩存非常簡單 - 您可以登錄並獲取一個域名,而不是您自己的圖像URL。