澳门新葡亰官网【ASP.NET MVC系列】浅谈缓存技术于ASP.NET中的行使

澳门新葡亰官网【ASP.NET MVC系列】浅谈缓存技术于ASP.NET中的行使

澳门新葡亰官网 1

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

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

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

【04】浅谈ASP.NET框架 
 

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

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

【07】浅谈ASP.NET MVC
路由   

【08】浅谈ASP.NET MVC
视图 

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

【10】浅尝辄止谈jqGrid 在ASP.NET
MVC中增删改查     

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

【12】浅尝辄止谈缓存技术在ASP.NET中之采取 
     

【13】浅谈NuGet于VS中的使用 
    

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

【15】浅谈数注解和验证

【16】浅谈依赖注入

【17】浅谈HtmlHelper

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

【19】浅谈ASP.NET MVC 模型

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

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

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

【23】再谈ASP.NET MVC Routing

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

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

【26】下一致雨后春笋:ASP.NET WebAPI

澳门新葡亰官网 2

本篇文章就是无发话架构,但是Cache又是搭中必备的有些,因此,在执教Cache的又,将会见提及到部分架构知识,关于架构部分,读者可不要理解,或者直接跳过,

卿独自待关注Cache即可,具体的架,会当继承文章中以及大家大快朵颐。

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

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

下图为正规的处理思路以及艺术

 澳门新葡亰官网 3

2.为什么引入Cache呢?

       
我们解,造成高并发的根本原因是大方读写的题材,一般地,对于一个网,读总是比写多,如我辈总是逛淘宝,京东,天猫,唯品会等,但我们并不一定买东西(买东西,即下单,下单的操作,对承诺DB的Write操作),缓存主要解决读之题目(当然,在晚期的稿子中,我会讲到信息队列MQ,也是平等种植缓存机制,其不仅解决读之问题,还解决写的题材)。

       
很好,我们解缓存主要解决读的题目,那么,我们念之东西很多,是休是缓存所有读的内容呢?答案是否定的。缓存主要解决那些频繁访问,吃服务器资源,实时性要求于没有,不常更新的内容。

老二   ASP.NET
缓存技术概述

 (一)ASP.NET缓存技术类

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

澳门新葡亰官网 4

 1.整页缓存

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

 2.组成部分页面缓存

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

 3.用程序缓存

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

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

 (二)二级缓存技术

当ASP.NET一般的花色被,我们采取二级缓存就可缓解服务器缓存问题了,如下为二级缓存的轮廓图。

 澳门新葡亰官网 5

1.何也一级缓存?

 
 一级缓存,指非借助外部缓存的缓存,上图被之二级缓存去丢外部缓存部分即使为一级缓存;

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

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

   
(1)首涂鸦呼吁读数据:蓝色之箭头表示首不成呼吁,从数据库服务器DB中取得数据,并以数据缓存在二级缓存系统受;

   
(2)非首浅呼吁读数据:先打二级缓存内部缓存中取数据展示页面,如果没数量,则失去二级缓存外部缓存中取数据展示页面,若外部缓存中从不数据,则另行失去数据库服务器中取数据;

 澳门新葡亰官网 6

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

4.做二级缓存系统的标缓存系统,一般我们可挑选MongoDB,Redis,Mencached等;

5.基被SOA+Redis的之形似系统架构(当然,本篇文章不提架构,因此无会见分析架构,但会在继续的文章被单独教架构)

 澳门新葡亰官网 7

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

 
对于读数据,采用自内往他的一一;对于刻画多少,采用从外向内的各个;

 7.缓存的有效期?

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

   
采用二级缓存方案,Memcaches缓存与ASP.NET缓存还如进行严格的管住以及控制,因为Memcached工作以外围,直接指向数据库中之数码开展读取,

都他的内存空间一般比充分,故她的缓存数据有效期应该依据缓存数据在采取中的实际缓存有效期来设定,不会见惨遭中不足使为放走的熏陶,而ASP.NET

缓存工作于内层,直接与利用程序中之数据开展互动,且ASP.NET框架对自缓存的内存空间有所限制,缓存空间了大会影响整运用的性质,为了当

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

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

,可以本着采用程序的访问速度带啦很十分的升迁。

(三)缓存涉及到的片连锁技能

缓存是同帮派技术,不容许花较少的篇幅即可讲明白,如下简要列举部分Cache相关的技艺

澳门新葡亰官网 8

 

 1.Cahe维护

保安网络及的,本地的Cache;

2.路是因为政策

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

澳门新葡亰官网 9

 

3.替换算法

4.预取技术

5.Cache性能分析

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

澳门新葡亰官网 10

 6.过期策略

合理设置过间隙,一般为秒为单位;

7.数额一致性

确保基本同步,读写多少的逐一等;

8.缓存级别

实际的级别,根据具体的业务需来设定;

9.Cache技术

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

10.数额缓存技术

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

老三   Cache在ASP.NET
MVC中之应用

(一)整页缓存

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

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

2.争页面需要整页缓存?

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

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

澳门新葡亰官网 11

 

4.例子

 (1)控制器缓存

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

 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  

PageCache.cshtml

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

Result:

澳门新葡亰官网 12

 

(2)Action缓存

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

(3)Web.config缓存

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

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

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>

我们将方的控制器缓存参数用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  

分析:

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

澳门新葡亰官网 13

 (3)缓存依赖

预留读者朋友等去研究,比较简单。

(二)部分页面缓存

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

 页面部分缓存就是缓存页面的同样片段,而不是缓存整个页面,它适用于页面内某些部分或用更新的数目的情形,在常用页面部分缓存的技术下经常应用先用全体页面缓存,然后又交替页面被未欲缓存的有的。(用AJAX局部刷新来明)

(三)运用程序缓存

应用程序缓存是为此来储存和下程序有关的靶子,主要由Cache类来促成(命名空间System.Web.Caching),可以以编码的措施灵活地操纵缓存的操作。

澳门新葡亰官网 14

四   版权区

  • 感您的读,若发生不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 太少一些文章用读、参考、引用、抄袭、复制与糊等多种道做而成为的,大部分呢原创。
  • 要你喜欢,麻烦推荐一下;如您来新想法,欢迎提出,邮箱:2098469527@qq.com。
  • 得转载该博客,但得著名博客来源。
admin

网站地图xml地图