亚洲必赢手机入口【ASP.NET MVC系列】浅谈缓存技术于ASP.NET中的使用。【ASP.NET MVC系列】浅谈缓存技术在ASP.NET中的利用。

by admin on 2018年10月5日

亚洲必赢手机入口 1

亚洲必赢手机入口 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

亚洲必赢手机入口 3

亚洲必赢手机入口 4

本篇文章就是无出口架构,但是Cache又是搭中必备的有些,因此,在上课Cache的以,将见面提及到一些架构知识,关于架构部分,读者可以不用理解,或者直接跳过,

本篇文章就非曰架构,但是Cache又是架设中不可或缺的一些,因此,在上课Cache的而,将见面提及到部分架构知识,关于架构部分,读者可绝不理解,或者直接跳过,

卿仅仅需要关注Cache即可,具体的架,会于持续文章中与大家大饱眼福。

您独自待关注Cache即可,具体的架,会在连续文章中与大家享受。

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

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

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

下图也健康的处理思路及艺术

生图也常规的处理思路以及方法

 亚洲必赢手机入口 5

 亚洲必赢手机入口 6

2.为什么引入Cache呢?

2.为何引入Cache呢?

       
我们清楚,造成高并发的根本原因是大气读写的问题,一般地,对于一个系统,读总是比写多,如我们连年逛淘宝,京东,天猫,唯品会等,但咱并不一定买东西(买东西,即下单,下单的操作,对诺DB的Write操作),缓存主要解决读的问题(当然,在后期的稿子中,我会说到消息队列MQ,也是均等栽缓存机制,其不仅解决读的题材,还解决写的题目)。

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

       
很好,我们了解缓存主要解决读的题目,那么,我们念之东西多,是未是缓存所有读之始末为?答案是否认的。缓存主要解决那些频繁访问,吃服务器资源,实时性要求较低,不常更新的情。

       
很好,我们了解缓存主要解决读之题材,那么,我们读的物重重,是免是缓存所有读之情节也?答案是否认的。缓存主要解决那些频繁访问,吃服务器资源,实时性要求比小,不常更新的情节。

亚   ASP.NET
缓存技术概述

老二   ASP.NET
缓存技术概述

 (一)ASP.NET缓存技术类

 (一)ASP.NET缓存技术型

以ASP.NET实际项目开被,我们可以行使基本的老三栽缓存技术:页面缓存、局部页面及数码缓存

以ASP.NET实际项目开中,我们可使基本的老三种缓存技术:页面缓存、局部页面及数目缓存

亚洲必赢手机入口 7

亚洲必赢手机入口 8

 1.整页缓存

 1.整页缓存

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

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

 2.有的页面缓存

 2.有页面缓存

 
 所谓部分页面缓存,也被局部页面缓存,指经设定影响页面的参数,此时底休养存存储页面的差不多独本子,一般情形要按参数值为这些页面版本设置索引;

 
 所谓部分页面缓存,也叫局部页面缓存,指经设定影响页面的参数,此时之复苏存存储页面的多单版,一般景象用依照参数值为这些页面版本设置索引;

 3.用程序缓存

 3.以程序缓存

 
 所谓用程序缓存,也让数据缓存,指以待大量服务器资源的目标存储在内存中,在ASP.NET中,由Cache类来落实(Cache类的每个实例对许切实的每个运用程序,

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

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

夫生存期依赖让采取程序的生存期,当然,如果系统又开或者断电,则其它当别论。)

 (二)二级缓存技术

 (二)二级缓存技术

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

以ASP.NET一般的种被,我们运用二级缓存就可以缓解服务器缓存问题了,如下为二级缓存的轮廓图。

 亚洲必赢手机入口 9

 亚洲必赢手机入口 10

1.何为一级缓存?

1.何也一级缓存?

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

 
 一级缓存,指无因外部缓存的缓存,上图中之二级缓存去丢外部缓存部分即使为一级缓存;

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

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

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

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

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

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

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

   
(2)非首赖呼吁读数据:先由二级缓存内部缓存中取数据显示页面,如果无数据,则去二级缓存外部缓存中取数据显示页面,若外部缓存中莫数,则重复错过数据库服务器中取数据;

 亚洲必赢手机入口 11

 亚洲必赢手机入口 12

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

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

4.结二级缓存系统的外部缓存系统,一般我们可摘MongoDB,Redis,Mencached等;

4.重组二级缓存系统的表面缓存系统,一般我们可选取MongoDB,Redis,Mencached等;

5.基为SOA+Redis的的貌似系统架构(当然,本篇文章非说话架构,因此无会见分析架构,但会在延续的章中独立教架构)

5.基给SOA+Redis的的相似系统架构(当然,本篇文章未语架构,因此无会见分析架构,但会当连续之稿子中独立教架构)

 亚洲必赢手机入口 13

 亚洲必赢手机入口 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相关的艺

亚洲必赢手机入口 15

亚洲必赢手机入口 16

 

 

 1.Cahe维护

 1.Cahe维护

维护网络直达之,本地的Cache;

保护网络上之,本地的Cache;

2.路出于政策

2.路是因为政策

实际的路由策略要依据Cache架构和计划性来设定,大致讲解一下当地缓存路由政策

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

亚洲必赢手机入口 17

亚洲必赢手机入口 18

 

 

3.替换算法

3.替换算法

4.预取技术

4.预取技术

5.Cache性能分析

5.Cache性能分析

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

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

亚洲必赢手机入口 19

亚洲必赢手机入口 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中整页缓存的语法格式

亚洲必赢手机入口 21

亚洲必赢手机入口 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:

亚洲必赢手机入口 23

亚洲必赢手机入口 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>操作即可

亚洲必赢手机入口 25

亚洲必赢手机入口 26

 (3)缓存依赖

 (3)缓存依赖

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

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

(二)部分页面缓存

(二)部分页面缓存

 部分页面缓存,也吃页面部分缓存,主要解决在页面缓存中待经常实时更新的平等组成部分情节。

 部分页面缓存,也被页面部分缓存,主要解决在页面缓存中待常实时更新的相同局部内容。

 页面部分缓存就是缓存页面的一样有些,而不是缓存整个页面,它适用于页面内一些部分或者需要创新的多少的情景,在常用页面部分缓存的技能下经常下先以总体页面缓存,然后又交替页面被未欲缓存的部分。(用AJAX局部刷新来喻)

 页面部分缓存就是缓存页面的同等有的,而未是缓存整个页面,它适用于页面内一些部分或者要创新的多少的状态,在常用页面部分缓存的技能下时采取先将不折不扣页面缓存,然后再次交替页面中无需缓存的局部。(用AJAX局部刷新来理解)

(三)运用程序缓存

(三)运用程序缓存

运程序缓存是因此来储存和用程序有关的目标,主要由Cache类来落实(命名空间System.Web.Caching),可以坐编码的道灵活地决定缓存的操作。

使用程序缓存是用来存储和运用程序有关的靶子,主要由于Cache类来促成(命名空间System.Web.Caching),可以为编码的法子灵活地控制缓存的操作。

亚洲必赢手机入口 27

亚洲必赢手机入口 28

四   版权区

四   版权区

  • 感谢你的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 尽少一些文章以读、参考、引用、抄袭、复制与糊等强智结合而成的,大部分也原创。
  • 倘你喜欢,麻烦推荐一下;如您发出新想法,欢迎提出,邮箱:2098469527@qq.com。
  • 足转载该博客,但必须著名博客来源。
  • 谢你的看,若有不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 太少一些文章用读、参考、引用、抄袭、复制与糊等多计做而成为的,大部分也原创。
  • 假使您喜爱,麻烦推荐一下;如你发出新想法,欢迎提出,邮箱:2098469527@qq.com。
  • 足转载该博客,但不能不著名博客来源。

相关文章

发表评论

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

网站地图xml地图