1. 程式人生 > >探索ASP.NET MVC5系列之~~~5.快取篇(頁面快取+二級快取)

探索ASP.NET MVC5系列之~~~5.快取篇(頁面快取+二級快取)

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正)

這次來篇放鬆的,咱們不要老是說安全相關的東西。快取這東西並不是MVC獨有的,N年前就有了,簡單介紹一下平時專案裡面使用的(Redis,Memcache等下次說) 

1.頁面快取:

先說最常見的的一種:[OutputCache(Duration = 100)] ,Duration單位是秒

第一次回到了斷點的地方,100秒內任意重新整理都不會再執行控制器裡面的A()了

帶引數快取

 [OutputCache(Duration = 100, VaryByParam = "id")] 

[OutputCache(Duration = 100, VaryByParam = "id;name")]

第一次訪問cache/b?id=1的時候斷點停下了,100s內不會進入斷點了。當id=2的時候又重新進入了斷點。多引數類似,注意一下引數分割是;

 

 ---------------------------------------------------------------------------------------------------

2.二級快取:(System.Web;System.Web.Caching;)

2.1絕對過期快取

 HttpRuntime.Cache.Add(key, list, null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.Default, null);

 

2.2相對過期快取(有點Session的感覺了)

 HttpRuntime.Cache.Add(key, list, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 0, 10), CacheItemPriority.Default, null);

2.3資料庫依賴快取

aspnet_regsql -C "data source=xxx;initial catalog=xxx;uid=xxx;password=xxx;" -ed -et -t "表名"

沒有裝VS的可以用管理員開啟cmd,然後切換到以下目錄:(v4.0.xxx有可能不一樣)

C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

其實可以看到,他的內部實現是通過觸發器來的,所以不見得有多麼高效:

2.配置WebConfig:

<!--資料庫快取依賴配置 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);

應用場景一般都是快取資料庫依賴表裡面的資料,當裡面資料發生改變則快取失效,這樣就可以及時自動更新快取了(我這邊只是做個演示)

資料沒有更新之前:

往死裡重新整理都沒有更新

表更新之後:

其他:檔案(夾)依賴快取,一般也就一些網站固定配置用它,一般是根據檔案最後一次修改時間來判斷時間差

簡單舉個例子:

HttpRuntime.Cache.Add(key, list, new CacheDependency(Request.MapPath("/App_Data/Config.xml")), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null);

改變內容:

 

相關推薦

探索ASP.NET MVC5系列~~~2.檢視---包含XSS防禦和非同步分部檢視的處理

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正) 4.共用其他檢視 不同控制器渲染同一個檢視檔案。這個應用場景還是比較多的,比如同樣是Article的集合,一個是顯示最新文章列表,一個是顯示文章列表,一個是顯示編輯推薦文章列表,基

探索ASP.NET MVC5系列~~~3.檢視---包含常用表單和暴力解猜防禦

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正) 這幾天忙著幫別人普及安全,今天就把這篇文章結束掉,明天講下 “過度提交” 的防禦。這次開篇就激烈點==》爆破演示: 開啟Burp   設定監聽埠==》8080 設定一下代理:

探索ASP.NET MVC5系列~~~5.快取頁面快取+二級快取

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程(不妥之處歡迎指正) 這次來篇放鬆的,咱們不要老是說安全相關的東西。快取這東西並不是MVC獨有的,N年前就有了,簡單介紹一下平時專案裡面使用的(Redis,Memcache等下次說)  1.頁面快取:

探索ASP.NET MVC5系列~~~4.模型---包含模型常用特性和過度提交防禦

@model Register @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-horizontal"> <h4>Register

探索ASP.NET MVC5系列~~~1.基礎---必須知道的小技能

其實任何資料裡面的任何知識點都無所謂,都是不重要的,重要的是學習方法,自行摸索的過程 MVC==>Model View Controller  Model ====>模型就是要去顯示,儲存,建立,更新和刪除的物件(實體) View =====>檢視是使用者看到並與之互動的介

Asp.net Core 系列--5.認證、授權與自定義許可權的實現

ChuanGoing 2019-11-24   asp.net core系列已經來到了第五篇,通過之前的基礎介紹,我們瞭解了事件訂閱/釋出的eventbus整個流程,初探dapper ORM實現,並且簡單的介紹了領域模型、領域倉儲及服務實現,結合上一篇的日誌、錯誤處理及事務和本篇將要介紹的許可權,大

(視訊)asp.net core系列k8s叢集部署視訊

0、前言 應許多網友的要求,特此錄製一下k8s叢集部署的視訊。在錄製完成後發現視訊的聲音存在一點瑕疵,不過不影響大家的觀感。 由於B站的賬號等級不夠無法上傳視訊因此先放在youku上(存在廣告),請大家多多包涵。 一、視訊說明 1、視訊地址: 如果有不懂,或者有疑問的歡迎留言。視訊分為兩段。 第一

ASP.NET MVC 系列 強型別HTML輔助方法使用

強型別輔助方法及及相關普通方法介紹一、普通Html輔助方法 1、@Html.Lable(元素名稱,元素值,元素屬性) 示例: @Html.Lable("GenreName","流行",new { @class="validation" }) 渲染之後程式碼如下 <la

ASP.NET MVC5+EF6+EasyUI 後臺管理系統5-EF增刪改查

using System; using System.Collections.Generic; using System.Linq; using Apps.Models; using Apps.Common; using Apps.IBLL; using Apps.IDAL; using Apps.DAL;

asp.net core 系列Performance的 Response compression響應壓縮

本文,幫助瞭解響應壓縮的一些知識及用法(大部分翻譯於官網,英文水平有限,不準確之處,歡迎指正)。 什麼是響應壓縮?響應壓縮簡單的說就是為了減少網路頻寬,而把返回的響應壓縮,使之體積縮小,從而加快響應的一種技術(個人理解) 網路頻寬是有限的資源。減少響應(response)的大小通常可以增加應用的響應性(即

asp.net core 系列Response caching(1)

這篇文章簡單的講解了response caching: 講解了cache-control,及對其中的頭和值的作用,及設定來控制response caching; 簡單的羅列了其他的快取技術:In-memory caching , Distributed Cache , Cache Ta

asp.net core 系列Response caching Distributed caching(3)

這篇文章講解分散式快取,即 Distributed caching in ASP.NET Core   Distributed caching in ASP.NET Core 分散式快取是可以在多個應用服務上共享的快取,比較經典的用法是作為多個應用伺服器的一個可到達的外部服務。分散式快取可以提

asp.net core 系列Startup

這篇文章簡單記錄 ASP.NET Core中 ,startup類的一些使用。  一.前言 在 Startup類中,一般有兩個方法: ConfigureServices 方法: 用來配置應用的 service 。  Configure 方法:建立應用的請求處理管道 它們都在

asp.net core 系列Dependency injection(依賴注入)

這篇文章主要講解asp.net core 依賴注入的一些內容。 ASP.NET Core支援依賴注入。這是一種在類和其依賴之間實現控制反轉的一種技術(IOC). 一.依賴注入概述 1.原始的程式碼 依賴就是一個物件的建立需要另一個物件。下面的MyDependency是應用中其他類需要的依賴: p

asp.net core 系列Configuration

在ASP.NET Core中的App configuration 是通過configuration providers基於key-value對建立的。Configuration providers讀取配置檔案到key-value,從多種配置源中: Azure key Vault Command-lin

asp.net core 系列靜態檔案

這篇講解asp.net core中的靜態檔案(大致翻譯於官網)。 靜態檔案,例如HTML,CSS, images和JavaScript. 要想直接被客戶端訪問,需要做一些配置。 一.Serve static files(提供靜態檔案服務) 靜態檔案儲存在專案的web root 目錄下。預設的目錄是<

Asp.net Core 系列--3.領域、倉儲、服務簡單實現

ChuanGoing 2019-11-11     距離上篇近兩個月時間,一方面時因為其他事情耽擱,另一方面也是之前準備不足,關於領域驅動有幾個地方沒有想通透,也就沒有繼續碼字。目前網路包括園子裡大多領域驅動設計的文章,關於倉儲者一層都沒有詳細的說明,只是簡單的一筆帶過:領域驅

asp.net core 系列5 佈局頁和靜態資源

# 0. 前言 在之前的4篇的內容裡,我們較為詳細的介紹了路由以及控制器還有檢視之間的關係。也就是說,系統如何從使用者的HTTP請求解析到控制器裡,然後在控制器裡處理資料,並返回給檢視,在檢視中顯示出來。這一篇我將為大家介紹基礎的最後一部分,佈局頁和靜態資源引入。 # 1. 佈局頁 在控制器和檢視那一篇

ASP.NET MVC5+EF6+EasyUI 後臺管理系統1-前言與目錄持續更新中...

編碼規範 圖標 pri log 任務 ros 部署 基本 form 開發工具:VS2015(2012以上)+SQL2008R2以上數據庫    您可以有償獲取一份最新源碼聯系QQ:729994997 價格 666RMB 升級後界面效果如下: 日程管理 http://

ASP.NET MVC5+EF6+EasyUI 後臺管理系統65-MVC WebApi 用戶驗證 (1)

screen 屬性 access override jquery true mod 解析 action 系列目錄 前言: WebAPI主要開放數據給手機APP,其他需要得知數據的系統,或者軟件應用,所以移動端與系統的數據源往往是相通的。 Web 用戶的身份驗證,及