簡體   English   中英

ASP.NET MVC緩存方案

[英]ASP.NET MVC Caching scenario

我還沒有找到適合我的方案的解決方案。 基本上我有一個ASP.NET MVC網站,它有相當多的數據庫訪問權限來制作視圖(每個視圖2-3個查詢),我想利用緩存來提高性能。

問題是視圖包含的數據可能會不規則地更改,例如2天內可能會相同,或者數據可能會在一小時內發生多次更改。

查詢非常簡單(選擇...從哪里......)而不是巨大的連接,每個查詢平均返回20-30行數據(大約10列)。

站點當前階段的查詢非常簡單,但隨着時間的推移,所有者將添加更多數據,訪問者數量將增加。 它們目前很大,我會考慮緩存,因為流量主要來自谷歌AdWords等,快速加載頁面將是一個好處(顯然)。

該站點將托管在Microsoft SQL Server 2005數據庫上(但如果需要,可以升級到2008)。

我也是:

  1. 將緩存設置為項目未更改的最短時間(例如,緩存為3分鍾)並告訴所有者任何更改最多需要3分鍾才能顯示?

  2. 找到一種方法強制緩存清除並重新處理更改(例如,如果所有者在管理面板中添加項目,則清除相關緩存)

  3. 忘記一起緩存

  4. 或者是否有適合這種情況的選項?

如果您使用的是Sql Server,還可以考慮另一個選項:

使用SqlCacheDependency類在更新基礎數據時使緩存失效。 顯然,這實現了與選項2類似的結果。

我可能實際上不得不同意Agileguy - 您的查詢描述看起來非常簡單。 在設計時提前思考並保持緩存是一個好主意,但是你已經證明你現在真的需要它嗎? 假設您現在沒有真正處理重大性能問題,那么選項3似乎比選項1好很多。

過早優化是萬惡之源;)

也就是說,如果要使用Cache,我會使用基於選項2的解決方案。

以這種方式獲得“臟”數據的機會較少。

善良,

第二種選擇是最好的。 如果相同的應用程序編輯/緩存數據,則不應該這么難。 如果有多個應用程序,可能會更棘手。

如果你不能這樣做,那么第一個也可以接受。 通過一些調整(即 - 我會嘗試在另一個線程超時時靜默更新緩存)它可能運行得很好(如果允許數據有點舊)。

如果可能的話,永遠不要放棄緩存。 每個人都知道“過早優化......”,但緩存是可以顯着提高應用程序可伸縮性/性能的一個方面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM