我有一個簡單的項目,我想發佈到Azure網站。我需要對一些值進行一些基本緩存以加快速度。Azure網站緩存策略
在這種情況下緩存數據的正確策略是什麼?我想,只要我保持自由或保留,我可以使用簡單的標準網頁緩存,因爲它是一臺機器,但如果我想使用共享的一些實例會發生什麼?分佈式緩存真的可用於網站嗎?這裏有什麼其他選項可以用於簡單緩存?
我有一個簡單的項目,我想發佈到Azure網站。我需要對一些值進行一些基本緩存以加快速度。Azure網站緩存策略
在這種情況下緩存數據的正確策略是什麼?我想,只要我保持自由或保留,我可以使用簡單的標準網頁緩存,因爲它是一臺機器,但如果我想使用共享的一些實例會發生什麼?分佈式緩存真的可用於網站嗎?這裏有什麼其他選項可以用於簡單緩存?
根據this,它看起來不像可以使用共享/分佈式緩存。有改變嗎?你有一個鏈接,指出Azure支持其2種緩存方案中的任何一種網站?
只要你只有1個實例,你是對的,使用正常的outputCache應該沒問題。如果擴展到2個或更多實例,則可能必須從網站遷移到託管服務才能使用其他2種緩存策略中的任何一種。 Azure並未提供具有託管服務的網站的全套功能。
這是我的2美分根據丹的答案下的簡短討論。截至2013年7月,我剛剛將我的網站/ Web應用程序部署到Azure。這是一種足球(我們美國朋友的足球:-))預測遊戲。它使用緩存來存儲大量POCO對象(比如匹配列表,玩家列表等)到緩存中。這不是一個全新的應用程序,我們在內部部署的hw上運行了2個賽季(服務器場中的2臺服務器,這個服務器有點過分了,SQL db)。現在我們在共享模式下運行一個實例。新賽季將於下週開始,如果我們看到單個實例還不夠,我們準備擴大規模。
所以我終於緩存了。我們選擇了共享緩存。如何設置它有很好的文檔記錄,儘管我個人的感覺是文檔沒有跟上Azure演進的速度。
將項目放入和共享緩存很容易,以及如何在web.config中配置它。我們不得不花費一點努力找到一種方法,在你需要的時候如何從你的應用程序中清除整個緩存 - 據我所知,如何枚舉已經存在於緩存中的項目是沒有辦法的。最後,我們結束了一個非常簡單的解決方案,無論什麼時候您將任何東西放入緩存中,您只需在附近留下密鑰,並且在需要清除整個緩存時,就可以使用它。
現在,我不得不說我不是爲這個Azure託管支付賬單的人,我沒有看到Azure門戶上的當前賬單,但我顯然關心整體價格。對我來說不太清楚的是使用共享緩存的成本。我花了一些時間找出一些定價表,雖然我不完全確定它是否適用。我無法在Azure價格計算器中看到這一點。
回到Dan的回答下我的評論 - 我相信有很多開發人員在中小型網站上工作,使用標準的HttpCache作爲放置POCO對象以加快訪問速度的地方。在這些例子中,整體緩存大小可能高達50 MB(顯然取決於您使用緩存的方式)。這樣的網站在單個實例上可能是可以的,但是嘿嘿,2個或更多的實例會踢屁股,我想在時間到了需要擴展的時候做好準備。對於這種情況,我錯過了什麼樣的緩存選擇和花費多少的明確指導。
我讀過關於dist的限制。緩存,只是不確定它仍然有效。我想這是他們在將產品從測試版移出之前將要解決的問題。 – Riri
Danludwig的回覆已經過去了6個月,我猜Azure世界中的很多事情都發生了變化 - 我剛剛部署了一個使用Azure Shared Cache的網站。然而,讓我有點生氣的是,至少恕我直言,即使在MSDN網站上也有很多過時的文檔,要獲得正確的答案是相當具有挑戰性的。 Riri的問題非常好,我想知道更新的答案是什麼:-) –
@AntoninJelinek,如果您在網站上使用共享/分佈式緩存,那麼看起來您已經對此問題有了更新的答案。我相信這個問題與在網站中使用共享緩存與託管服務有關......在後者中,共享緩存始終可用。 – danludwig