其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正)
彙總:
http://www.cnblogs.com/dunitian/p/4822808.html#mvc 本章Demo: https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/6.網頁基礎/BMVC5/MVC5Base/Controllers/CacheController.cs 這次來篇放松的,咱們不要老是說安全相關的東西。緩存這東西并不是MVC獨有的,N年前就有了,簡單介紹一下平時項目裡面使用的(Redis,Memcache等下次說)1.頁面緩存:先說最常見的的一種:[OutputCache(Duration = 100)] ,Duration機關是秒![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 第一次回到了斷點的地方,100秒内任意重新整理都不會再執行控制器裡面的A()了![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 帶參數緩存
[OutputCache(Duration = 100, VaryByParam = "id")] [OutputCache(Duration = 100, VaryByParam = "id;name")]
第一次通路cache/b?id=1的時候斷點停下了,100s内不會進入斷點了。當id=2的時候又重新進入了斷點。多參數類似,注意一下參數分割是;![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存)
---------------------------------------------------------------------------------------------------
2.二級緩存:(System.Web;System.Web.Caching;)
2.1絕對過期緩存
HttpRuntime.Cache.Add(key, list, null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 2.2相對過期緩存(有點Session的感覺了)
HttpRuntime.Cache.Add(key, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 10), CacheItemPriority.Default, null);
![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 2.3資料庫依賴緩存
1.啟動一下資料庫緩存依賴:管理者身份打開VS開發人員指令(參數詳解:
https://msdn.microsoft.com/zh-cn/library/ms229862)
aspnet_regsql -C "data source=xxx;initial catalog=xxx;uid=xxx;password=xxx;" -ed -et -t "表名"
![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 沒有裝VS的可以用管理者打開cmd,然後切換到以下目錄:(v4.0.xxx有可能不一樣)
C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
其實可以看到,他的内部實作是通過觸發器來的,是以不見得有多麼高效:
2.配置WebConfig:![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) <!--資料庫緩存依賴配置 Start--> <caching> <!--pollTime,毫秒為機關,意識是每隔10秒檢測下資料庫,檢測表是否有發生變化--> <sqlCacheDependency pollTime="10000"> <databases> <add name="MySQLCacheDB" connectionStringName="cacheConn"/> </databases> </sqlCacheDependency> </caching> <!--資料庫緩存依賴配置 End-->
Code:HttpRuntime.Cache.Add(key, list, new SqlCacheDependency("SQLCacheDB", "SeoTKD"), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
應用場景一般都是緩存資料庫依賴表裡面的資料,當裡面資料發生改變則緩存失效,這樣就可以及時自動更新緩存了(我這邊隻是做個示範)
資料沒有更新之前:![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 往死裡重新整理都沒有更新![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 表更新之後:![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 其他:檔案(夾)依賴緩存,一般也就一些網站固定配置用它,一般是根據檔案最後一次修改時間來判斷時間差
簡單舉個例子:
HttpRuntime.Cache.Add(key, list, new CacheDependency(Request.MapPath("/App_Data/Config.xml")), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null);![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) 改變内容:![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存) ![]()
探索ASP.NET MVC5系列之~~~5.緩存篇(頁面緩存+二級緩存)
課外拓展:
http://www.cnblogs.com/knowledgesea/p/3904929.html作者:
毒逆天出處:
https://www.cnblogs.com/dotnetcrazy打賞:
18i4JpL6g54yAPAefdtgqwRrZ43YJwAV5z本文版權歸作者和部落格園共有。歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接!