betway88体育【ASP.NET MVC系列】浅谈缓存技术于ASP.NET中的采用。【ASP.NET MVC系列】浅谈缓存技术以ASP.NET中之运。

betway88体育 1

betway88体育 2

【01】浅谈Google
Chrome浏览器(理论篇)

【01】浅谈Google
Chrome浏览器(理论篇)

【02】浅谈Google
Chrome浏览器(操作篇)(上)

【02】浅谈Google
Chrome浏览器(操作篇)(上)

【03】浅谈Google
Chrome浏览器(操作篇)(下)

【03】浅谈Google
Chrome浏览器(操作篇)(下)

【04】浅谈ASP.NET框架 
 

【04】浅谈ASP.NET框架 
 

【05】浅谈ASP.NET
MVC运行过程    

【05】浅谈ASP.NET
MVC运行过程    

【06】浅谈ASP.NET MVC
控制器   

【06】浅谈ASP.NET MVC
控制器   

【07】浅谈ASP.NET MVC
路由   

【07】浅谈ASP.NET MVC
路由   

【08】浅谈ASP.NET MVC
视图 

【08】浅谈ASP.NET MVC
视图 

【09】浅谈ASP.NET MVC
视图与控制传递数据的几种植方式 

【09】浅谈ASP.NET MVC
视图与控制器传递数据

【10】泛泛谈jqGrid 在ASP.NET
MVC中增删改查     

【10】泛泛谈jqGrid 在ASP.NET
MVC中增删改查     

【11】浅谈ASP.NET
页面中传值的几种方法

【11】浅谈ASP.NET
页面中传值的几栽方法

【12】浅谈缓存技术以ASP.NET中的运 
     

【12】浅尝辄止谈缓存技术在ASP.NET中的使 
     

【13】浅谈NuGet以VS中的下 
    

【13】浅谈NuGet于VS中之采取 
    

【14】浅谈ASP.NET
程序发布过程         
 

【14】浅谈ASP.NET
程序发布过程         
 

【15】浅谈数注解和证明

【15】浅谈数注解和证明

【16】浅谈依赖注入

【16】浅谈依赖注入

【17】浅谈HtmlHelper

【17】浅谈HtmlHelper

【18】浅谈基于APS.NET身份验证

【18】浅谈基于APS.NET身份验证

【19】浅谈ASP.NET MVC 模型

【19】浅谈ASP.NET MVC 模型

【20】浅谈ASP.NET MVC 单元测试

【20】浅谈ASP.NET MVC 单元测试

【21】浅谈ASP.NET MVC网络安全;

【21】浅谈ASP.NET MVC网络安全;

【22】浅谈ASP.NET MVC八生类扩展

【22】浅谈ASP.NET MVC八大接近扩展

【23】再谈ASP.NET MVC Routing

【23】再谈ASP.NET MVC Routing

【24】浅谈ASP.NET 高级话题

【24】浅谈ASP.NET 高级话题

【25】浅谈大型ASP.NET MVC项目(含DEMO)

【25】浅谈大型ASP.NET MVC项目(含DEMO)

【26】下一致多级:ASP.NET WebAPI

【26】下一样多样:ASP.NET WebAPI

betway88体育 3

betway88体育 4

本篇文章就非提架构,但是Cache又是搭中必备的一对,因此,在授课Cache的而,将会晤提及到有的架构知识,关于架构部分,读者可毫不理解,或者直接跳过,

本篇文章就未曰架构,但是Cache又是搭中必不可少的组成部分,因此,在讲课Cache的还要,将会晤提及到有的架构知识,关于架构部分,读者可毫无理解,或者直接跳过,

你独自需要关注Cache即可,具体的架构,会当连续文章中以及大家大饱眼福。

乃只待关注Cache即可,具体的架,会以后续文章被同大家大饱眼福。

同样   为什么要当ASP.NET
项目遭到引入缓存

一律   为什么而于ASP.NET
项目被引入缓存

  1. 咱俩先来设想一个题目,通常,面临高并发问题时常,我们相应怎么处理?
  1. 咱俩事先来设想一个题材,通常,面临高并发问题常常,我们理应怎么处理?

下图为正常的处理思路与方式

产图也常规的拍卖思路和办法

 betway88体育 5

 betway88体育 6

2.为何引入Cache呢?

2.怎么引入Cache呢?

       
我们理解,造成高并发的根本原因是大方读写的题材,一般地,对于一个系统,读总是比写多,如我辈连逛淘宝,京东,天猫,唯品会等,但咱并不一定买东西(买东西,即下单,下单的操作,对诺DB的Write操作),缓存主要解决读的题材(当然,在晚的篇章被,我会说到信息队列MQ,也是同样种缓存机制,其不仅解决读的题材,还解决写的题目)。

       
我们领略,造成高并发的根本原因是大方读写的题材,一般地,对于一个系统,读总是比写多,如我们连逛淘宝,京东,天猫,唯品会等,但我们并不一定买东西(买东西,即下单,下单的操作,对诺DB的Write操作),缓存主要解决读的题目(当然,在末的篇章被,我会讲到信息队列MQ,也是如出一辙栽缓存机制,其不仅解决读的题目,还缓解写的问题)。

       
很好,我们掌握缓存主要解决读之题目,那么,我们读的事物多,是无是缓存所有读的情节为?答案是否认的。缓存主要解决那些频繁访问,吃服务器资源,实时性要求比没有,不常更新的情节。

       
很好,我们理解缓存主要解决读之题材,那么,我们读的物重重,是无是缓存所有读的情吧?答案是否定的。缓存主要解决那些频繁访问,吃服务器资源,实时性要求较小,不常更新的始末。

第二   ASP.NET
缓存技术概述

仲   ASP.NET
缓存技术概述

 (一)ASP.NET缓存技术类

 (一)ASP.NET缓存技术项目

在ASP.NET实际项目支出中,我们得以下基本的老三栽缓存技术:页面缓存、局部页面和数量缓存

于ASP.NET实际项目开发中,我们好运用基本的老三栽缓存技术:页面缓存、局部页面及数目缓存

betway88体育 7

betway88体育 8

 1.整页缓存

 1.整页缓存

 
所谓整页缓存,指缓存整个页面,且设置刷新间隔时间,刷新间隔时间一般坐秒为单位(缓存不能够一切刷新,且刷新间隔不依赖外部事件);

 
所谓整页缓存,指缓存整个页面,且设置刷新间隔时间,刷新间隔时间一般以秒为单位(缓存不能够一体刷新,且刷新间隔不依赖外部事件);

 2.组成部分页面缓存

 2.部分页面缓存

 
 所谓部分页面缓存,也深受局部页面缓存,指经设定影响页面的参数,此时之休养生息存存储页面的多单版本,一般情形要按照参数值为这些页面版本设置索引;

 
 所谓部分页面缓存,也被局部页面缓存,指经设定影响页面的参数,此时底休养存存储页面的基本上独本子,一般景象用按照参数值为这些页面版本设置索引;

 3.以程序缓存

 3.用程序缓存

 
 所谓动程序缓存,也为数据缓存,指用需大量服务器资源的靶子存储在内存中,在ASP.NET中,由Cache类来贯彻(Cache类的每个实例对承诺切实的每个运用程序,

 
 所谓动程序缓存,也吃数据缓存,指将急需大量服务器资源的对象存储在内存中,在ASP.NET中,由Cache类来贯彻(Cache类的每个实例对诺具体的每个运用程序,

彼生存期依赖让以程序的生存期,当然,如果系统重新开或者断电,则其它当别论。)

那个生存期依赖让以程序的生存期,当然,如果系统重新开或者断电,则其它当别论。)

 (二)二级缓存技术

 (二)二级缓存技术

每当ASP.NET一般的品类中,我们使用二级缓存就足以解决服务器缓存问题了,如下为二级缓存的轮廓图。

在ASP.NET一般的色中,我们用二级缓存就得解决服务器缓存问题了,如下为二级缓存的轮廓图。

 betway88体育 9

 betway88体育 10

1.何为一级缓存?

1.何也一级缓存?

 
 一级缓存,指不依靠外部缓存的缓存,上图备受的二级缓存去丢外部缓存部分就为一级缓存;

 
 一级缓存,指无借助外部缓存的缓存,上图被的二级缓存去丢外部缓存部分就是为一级缓存;

 2.成:由Web服务器、数据库服务器和二级缓存系统组成;

 2.整合:由Web服务器、数据库服务器和二级缓存系统结合;

 3.请求-处理流程:对于读数据,采用打外往他的逐一:内部缓存=》外部缓存=》数据库

 3.请求-处理流程:对于读数据,采用打外于外之顺序:内部缓存=》外部缓存=》数据库

   
(1)首蹩脚呼吁读数据:蓝色的箭头表示首次等呼吁,从数据库服务器DB中得数据,并拿数据缓存在二级缓存系统被;

   
(1)首软呼吁读数据:蓝色的箭头表示首破呼吁,从数据库服务器DB中获得数据,并以数据缓存在二级缓存系统面临;

   
(2)非首不善呼吁读数据:先从二级缓存内部缓存中取数据显示页面,如果无数,则去二级缓存外部缓存中取数据展示页面,若外部缓存中并未数量,则再次去数据库服务器中取数据;

   
(2)非首浅呼吁读数据:先打二级缓存内部缓存中取数据展示页面,如果没有数量,则去二级缓存外部缓存中取数据显示页面,若外部缓存中尚无数量,则再夺数据库服务器中取数据;

 betway88体育 11

 betway88体育 12

 (4)对于刻画多少,才发生从外向内顺序:数据库=》外部缓存=》内部缓存(这样做的目的,主要是保护数据的一致性);

 (4)对于刻画多少,才发从外向内顺序:数据库=》外部缓存=》内部缓存(这样做的目的,主要是维护数据的一致性);

4.成二级缓存系统的外表缓存系统,一般我们只是摘MongoDB,Redis,Mencached等;

4.结合二级缓存系统的表面缓存系统,一般我们而选MongoDB,Redis,Mencached等;

5.基给SOA+Redis的底一般系统架构(当然,本篇文章非曰架构,因此不见面分析架构,但会以后续的文章被独立教架构)

5.基给SOA+Redis的之一般系统架构(当然,本篇文章不开腔架构,因此不见面分析架构,但会以连续的文章被独立教架构)

 betway88体育 13

 betway88体育 14

 6.如何保证数据的一致性?

 6.如何保证数据的一致性?

 
对于读数据,采用自内往他之逐条;对于刻画多少,采用从外向内的依次;

 
对于读数据,采用打外于外的逐一;对于刻画多少,采用从外向内的一一;

 7.缓存的有效期?

 7.缓存的有效期?

   
我们因为Memcached做表面缓存为例,对于ASP.NET内部缓存,我们见面担心内存不够用,而对Memcached,则好不用顾虑内存不够用的题材。

   
我们盖Memcached做表面缓存为例,对于ASP.NET内部缓存,我们会担心内存不够用,而于Memcached,则可不要操心内存不够用底问题。

   
采用二级缓存方案,Memcaches缓存与ASP.NET缓存还如进行严厉的管住和操纵,因为Memcached工作以外围,直接针对数据库中的数量进行读取,

   
采用二级缓存方案,Memcaches缓存与ASP.NET缓存还如拓展严加的田间管理及决定,因为Memcached工作于外围,直接指向数据库中之数量进行读取,

犹他的内存空间一般比较生,故她的缓存数据有效期应该因缓存数据在动用中的其实缓存有效期来设定,不会见蒙内部不足而让保释的熏陶,而ASP.NET

还他的内存空间一般比较生,故她的缓存数据有效期应该根据缓存数据在采用中的骨子里缓存有效期来设定,不会见被内部不足而吃放走的熏陶,而ASP.NET

缓存工作于内层,直接跟祭程序中的数量进行交互,且ASP.NET框架对自身缓存的内存空间有所限制,缓存空间了大会影响整个运用的性,为了在

缓存工作以内层,直接和祭程序中的数目进行互动,且ASP.NET框架对本身缓存的内存空间有所限制,缓存空间了大会影响整运用的属性,为了在

同一之内存空间下缓存更多的数目,ASP.NET缓存的有效期应该小于或等于Memcached缓存的有效期,有效期具体多长时间视内存空间和用程序访问

一如既往的内存空间下缓存更多之数,ASP.NET缓存的有效期应该小于或等Memcached缓存的有效期,有效期具体多长时间视内存空间和利用程序访问

频率的轻重而定,ASP.NET对许缓存数据的有效期的同莫克超越其以Memcached中之有效期,这样才能够及缓存数据的一致性,两只缓存的协同工作

频率的高低而定,ASP.NET对许缓存数据的有效期的同不能够凌驾其以Memcached中的有效期,这样才会达标缓存数据的一致性,两独缓存的协同工作

,可以针对动程序的访问速度带啦很非常之升迁。

,可以针对应用程序的访问速度带啦很充分之晋升。

(三)缓存涉及到之片段相关技能

(三)缓存涉及到之一对系技术

缓存是相同派别技术,不可能花较少的字数即可讲明白,如下简要列举部分Cache相关的艺

缓存是一致家技术,不可能花较少的字数即可讲明白,如下简要列举部分Cache相关的技术

betway88体育 15

betway88体育 16

 

 

 1.Cahe维护

 1.Cahe维护

维护网络达到的,本地的Cache;

保安网络达到的,本地的Cache;

2.路出于政策

2.路由于政策

切实的路由策略要根据Cache架构和计划来设定,大致讲解一下本土缓存路由政策

具体的路由策略要依据Cache架构和计划性来设定,大致讲解一下本土缓存路由政策

betway88体育 17

betway88体育 18

 

 

3.替换算法

3.替换算法

4.预取技术

4.预取技术

5.Cache性能分析

5.Cache性能分析

乘一些特性分析工具来分析,主要关心命中率/缓存对象大小之间关系

据一些特性分析工具来分析,主要关注命中率/缓存对象大小之间关系

betway88体育 19

betway88体育 20

 6.过期策略

 6.过期策略

客观设置过间隙,一般为秒为单位;

客观设置过间隙,一般为秒为单位;

7.数据一致性

7.数量一致性

保中心同步,读写多少的依次等;

保证基本同步,读写多少的相继等;

8.缓存级别

8.缓存级别

实际的级别,根据实际的事情需来设定;

切切实实的级别,根据现实的工作要求来设定;

9.Cache技术

9.Cache技术

磁盘缓存,存储器缓存,WWW服务器缓存等;

磁盘缓存,存储器缓存,WWW服务器缓存等;

10.数据缓存技术

10.数量缓存技术

 客户端数据缓存,分布式数据缓存,集中式数据缓存等;

 客户端数据缓存,分布式数据缓存,集中式数据缓存等;

其三   Cache在ASP.NET
MVC中之采用

老三   Cache在ASP.NET
MVC中的行使

(一)整页缓存

(一)整页缓存

1.ASP.NET
MVC中生出哪些整页缓存?

1.ASP.NET
MVC中有什么整页缓存?

 整页缓存是同等种比较简单且常用之缓存方式,缓存是页面。在ASP.NET中,整页缓存一般包括控制器缓存,Action缓存,Web.config缓存等;

 整页缓存是一致栽比较简单且常用的缓存方式,缓存是页面。在ASP.NET中,整页缓存一般包括控制器缓存,Action缓存,Web.config缓存等;

2.哪些页面需要整页缓存?

2.怎么页面需要整页缓存?

 一般地,整页缓存页面具有“读取频繁,数据不常更新、编译时需要占用大量日与资源”等特性;

 一般地,整页缓存页面具有“读取频繁,数据不常更新、编译时用占用大量岁月跟资源”等特色;

3.ASP.NET
MVC中整页缓存的语法格式

3.ASP.NET
MVC中整页缓存的语法格式

betway88体育 21

betway88体育 22

 

 

4.例子

4.例子

 (1)控制器缓存

 (1)控制器缓存

控制器缓存指将缓存作用被控制器。

控制器缓存指把缓存作用为控制器。

 PageCacheController.cs

 PageCacheController.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace CacheDemo.Controllers
 8 {
 9     [OutputCache(Duration = 70)]
10     public class ControllerCacheController : Controller
11     {
12         // GET: Default
13         public ActionResult ControllerCache()
14         {
15             
16             ViewBag.CurrentTime = System.DateTime.Now;
17             return View();
18         }
19     }
20 }
21  
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace CacheDemo.Controllers
 8 {
 9     [OutputCache(Duration = 70)]
10     public class ControllerCacheController : Controller
11     {
12         // GET: Default
13         public ActionResult ControllerCache()
14         {
15             
16             ViewBag.CurrentTime = System.DateTime.Now;
17             return View();
18         }
19     }
20 }
21  

PageCache.cshtml

PageCache.cshtml

1 @{
2     ViewBag.Title = "ControllerCache";
3 }
4 
5 <h2>ControllerCache</h2>
6 
7 <div>
8     ViewBag的值:@ViewBag.CurrentTime
9 </div>
1 @{
2     ViewBag.Title = "ControllerCache";
3 }
4 
5 <h2>ControllerCache</h2>
6 
7 <div>
8     ViewBag的值:@ViewBag.CurrentTime
9 </div>

Result:

Result:

betway88体育 23

betway88体育 24

 

 

(2)Action缓存

(2)Action缓存

Action缓存指把缓存作用于Action。控制措施缓存与控制器缓存原理差不多,只不过控制器缓存把缓存作用被控制器,控制器方法缓存把缓存作用为控制器方法。这里就是无教了。

Action缓存指把缓存作用于Action。控制方式缓存与控制器缓存原理差不多,只不过控制器缓存把缓存作用为控制器,控制器方法缓存把缓存作用为控制器方法。这里就不教了。

(3)Web.config缓存

(3)Web.config缓存

Web.config缓存,有接触类似于我们以数据库连接字符串添加于配置文件一律,看看下面的代码,是否好熟稔呢?

Web.config缓存,有硌类似于我们将数据库连接字符串添加在安排文件一律,看看下面的代码,是否老熟稔呢?

<connectionStrings>
    <add name="SqlserverConstr" connectionString="Server=IP;db=DataBaseName;uid=UserName;pwd=Password" providerName="System.Data.SqlClient" />
  </connectionStrings>
<connectionStrings>
    <add name="SqlserverConstr" connectionString="Server=IP;db=DataBaseName;uid=UserName;pwd=Password" providerName="System.Data.SqlClient" />
  </connectionStrings>

Web.config将待缓存的Controller或Action提取抽象到布置文件中,其实就算相当给我们运用数据库连接字符串,使用时,调用即可。

Web.config将索要缓存的Controller或Action提取抽象到布置文件被,其实就是一定给我们应用数据库连接字符串,使用时,调用即可。

<system.web>
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name ="WebConfiCache" duration="70"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
  </system.web>
<system.web>
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name ="WebConfiCache" duration="70"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
  </system.web>

咱俩拿地方的控制器缓存参数用Web.config来部署

咱们用上面的控制器缓存参数用Web.config来安排

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace CacheDemo.Controllers
 8 {
 9     //[OutputCache(Duration = 70)]
10     [OutputCache(CacheProfile = "WebConfiCache")]
11     public class ControllerCacheController : Controller
12     {
13         // GET: Default
14         public ActionResult ControllerCache()
15         {
16             ViewBag.CurrentTime = System.DateTime.Now;
17             return View();
18         }
19     }
20 }
21  
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace CacheDemo.Controllers
 8 {
 9     //[OutputCache(Duration = 70)]
10     [OutputCache(CacheProfile = "WebConfiCache")]
11     public class ControllerCacheController : Controller
12     {
13         // GET: Default
14         public ActionResult ControllerCache()
15         {
16             ViewBag.CurrentTime = System.DateTime.Now;
17             return View();
18         }
19     }
20 }
21  

分析:

分析:

其实一定简单,就视作数据库连接字符串来操作还是<appSetting>操作即可

实际上一定简单,就当数据库连接字符串来操作还是<appSetting>操作即可

betway88体育 25

betway88体育 26

 (3)缓存依赖

 (3)缓存依赖

养读者对象等去研究,比较简单。

雁过拔毛读者对象等去研究,比较简单。

(二)部分页面缓存

(二)部分页面缓存

 部分页面缓存,也让页面部分缓存,主要解决在页面缓存中得时实时更新的等同有些情节。

 部分页面缓存,也让页面部分缓存,主要解决在页面缓存中需要时实时更新的均等组成部分内容。

 页面部分缓存就是缓存页面的一致组成部分,而休是缓存整个页面,它适用于页面内一些部分或者要创新的多寡的情,在常用页面部分缓存的艺下经常以先将全体页面缓存,然后还交替页面中无欲缓存的组成部分。(用AJAX局部刷新来了解)

 页面部分缓存就是缓存页面的同片,而无是缓存整个页面,它适用于页面内一些部分或要创新的数目的事态,在常用页面部分缓存的技艺下经常应用先用整个页面缓存,然后还交替页面中莫待缓存的片段。(用AJAX局部刷新来掌握)

(三)运用程序缓存

(三)运用程序缓存

运程序缓存是用来存储和行使程序有关的靶子,主要出于Cache类来贯彻(命名空间System.Web.Caching),可以因编码的法灵活地决定缓存的操作。

运用程序缓存是故来囤和行使程序有关的对象,主要是因为Cache类来兑现(命名空间System.Web.Caching),可以为编码的点子灵活地决定缓存的操作。

betway88体育 27

betway88体育 28

四   版权区

四   版权区

  • 感谢您的读书,若发生不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 极少一些文章使读、参考、引用、抄袭、复制和糊等强术做而成的,大部分吧原创。
  • 若您喜爱,麻烦推荐一下;如你来新想法,欢迎提出,邮箱:2098469527@qq.com。
  • 好转载该博客,但得著名博客来源。
  • 感谢您的翻阅,若发生不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 最好少一些文章以读、参考、引用、抄袭、复制和糊等强办法组成而成的,大部分呢原创。
  • 假使你喜爱,麻烦推荐一下;如你发出新想法,欢迎提出,邮箱:2098469527@qq.com。
  • 好转载该博客,但得著名博客来源。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注