MVC-Cache-1.输出缓存(Cache:[1].输出缓存2.应用程序缓存)
缓存前提概念:
1.使用缓存的目的就是为提供网站性能,减轻对数据库的压力,提高访问的速度。
2.如果使用缓存不当,比不使用缓存造成的影响更恶劣(缓存数据的更新不及时、缓存过多等).
3..net MVC 中有两种相应的缓存技术 :1.应用程序缓存 。2.输出缓存
应用程序缓存和输出缓存的区别
输出缓存:也就是Outputcache 是相对于某个Action或Controller而言。使用的场景包括某个页面的数据更新不是很频繁,不需要每次都从数据库区查询。缓存起来从内存中读取。比如文章详情,排名什么的。
数据缓存:是相对于全局的。任何地方需要调用的时候都可以去调用。使用的场景包括权限管理这种模块的。每个角色对于菜单的访问都是固定的,所以有必要将角色,权限,菜单这种数据做一个全局的数据缓存。修改时再做缓存的更新。
如果通俗一点来说输出缓存就像是“局部变量”,数据缓存就像是全局变量。
1.输出缓存-OutputCache
主要是Outputcache的基本使用。
第一种输出缓存的使用方法是在Controller 或Action上打[OutPutCache]特性即可。
[OutputCache(Duration =20,VaryByParam ="type,page")] //根据参数type,page,任意参数变化,更新缓存;参数无变化则每隔20秒丢掉旧缓存,等待新的请求,更新缓存数据。不标注VaryByParam 则默认根据所有参数缓存.
//根据参数,从数据库中获取指定详细内容,并缓存该内容。不同的参数会得到不同的内容,自然也会有缓存。
public ActionResult ExampleVaryByParam(string type,int page)
{
ViewBag.type = type;
ViewBag.page= page;
return View();
}
第二种输出缓存的使用方法是使用配置文件CacheProfile设置缓存.其实作用和效果还是一样,无非就是方便点,统一的配置参数都直接写webconfig文件里面。当然你也可以在Controller中写。
web.config部分定义了一个名为“exampleCacheProfile”的缓存配置文件。使用该配置项时,只需指定CacheProfile=配置项名称即可。
<!---CacheProfile配置文件中设置缓存-->
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="exampleCacheProfile1" duration="20" VaryByParam ="type")/>
<add name="exampleCacheProfile2" duration="20" VaryByParam ="page")/>
<add name="exampleCacheProfile3" duration="20" VaryByParam ="type,page")/>
.
.
.
</outputCacheProfiles>
</outputCacheSettings>
</caching>
<!---CacheProfile配置文件中设置缓存end-->
namespace MvcApplication1.Controllers
{
public class ProfileController : Controller
{
//配置文件中的缓存策略名称赋值给CacheProfile
[OutputCache(CacheProfile="exampleCacheProfile")]
public string Index()
{
return DateTime.Now.ToString();
}
}
}
ps:VaryByParam可以根据参数缓存不同的内容
当VaryByParam="*": 每当表单或查询字符串参数变化时,创建一个不同的缓存版本。
当VaryByParam="none": 不创建不同的缓存内容,不根据参数缓存不同的内容,即只有一个内容的缓存。
当VaryByParam="参数列表": 为不同的参数创建不同的缓存版本。
2.应用数据缓存-Cache
应用数据缓存-Cache具体内容在这里:https://www.cnblogs.com/jsll/p/11619306.html
MVC-Cache-1.输出缓存(Cache:[1].输出缓存2.应用程序缓存)的更多相关文章
- Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/avon520/archive/2009/11/25/4872704.aspx .NET中Cache有两种调用方式:Ht ...
- GPU程序缓存(GPU Program Caching)
GPU程序缓存 翻译文章: GPU Program Caching 总览 / 为什么 因为有一个沙盒, 每一次加载页面, 我们都会转化, 编译和链接它的GPU着色器. 当然不是每一个页面都需要着色器, ...
- MVC-Cache-2.应用程序缓存(Cache:1.输出缓存[2].应用程序缓存)
2.应用数据缓存-Cache 1.引入CacheHelper.cs CacheHelper.cs文件源码在下面; 2.介绍用法: //键 string ips = "键"; //值 ...
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...
- 缓存Cache
转载自 博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Cach ...
- ASP.NET缓存 Cache
缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...
- ASP.NET状缓存Cache的应用-提高数据库读取速度
原文:ASP.NET状缓存Cache的应用-提高数据库读取速度 一. Cache概述 既然缓存中的数据其实是来自数据库的,那么缓存中的数据如何和数据库进行同步呢?一般来说,缓存中应该存放改 ...
- 网页的缓存Cache与控制
什么是缓存 Cache? 缓存位于客户端与服务器之间, 或者服务器与服务器之间.它决定是否保存所获资源的副本,以及如何使用副本,何时更新副本,这里所说的资源包括页面的HTML, 图片,文件等等. 使用 ...
- asp.net,缓存Cache
缓存Cache: >直接使用Cache["content"],缓存与Session不同,所有用户都可以共享.永不过期,由服务器自己维护,当内存不够时,会将老的缓存释放掉. & ...
随机推荐
- VS2010配置OpenGL开发环境(转)
OpenGL(Open Graphics Library)是一个跨编程语言.跨平台的专业图形程序接口.OpenGL是SGI公司开发的一套计算机图形处理系统,是图形硬件的软件接口,任何一个OpenGL应 ...
- 深层对象转深层数组(重点:先把对象转数组,直接for in 遍历对象不太可行)
var json: { PRow0: { style: { width: 10 } }, PTable1: { style: { height: 20 } } } const jsonToArrTre ...
- C#Json数据反序列化为Dictionary并根据关键字获取指定的值
Json数据: { "dataSet": { "header": { ", "errorInfo": "HTTP请求错误 ...
- H310C,B365,M.2 NVME SSD,USB3.0,安装 WIN7 64 位
华擎H310CM ITX NVME SSD 上安装WIN7 64位 核心关键点:xHCI USB3.0驱动,nvme驱动,nvme win7补丁. 硬件配置:I5 9400F, 华擎H310CM IT ...
- 【NER】对命名实体识别(槽位填充)的一些认识
命名实体识别 1. 问题定义 广义的命名实体识别是指识别出待处理文本中三大类(实体类.时间类和数字类).七小类(人名.机构名.地名.日期.货币和百分比)命名实体.但实际应用中不只是识别上述所说的实体类 ...
- 高级UI-FloatingActionButton
FloatingActionButton为悬浮按钮,就是常见的那种悬浮在控件上,可以调出其他菜单的按钮 FloatingActionButton的特有属性 app:backgroundTint 按钮的 ...
- xadmin自定义菜单、增加功能、富文本编辑器
xadmin功能:https://www.cnblogs.com/derek1184405959/p/8682250.html#blogTitle7
- php类的继承(基本概念,访问权限修饰符,重写override)
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- LeetCode 671. 二叉树中第二小的节点(Second Minimum Node In a Binary Tree) 9
671. 二叉树中第二小的节点 671. Second Minimum Node In a Binary Tree 题目描述 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 ...
- linux 加载新的磁盘(卷组)
pvcreate /dev/vdbvgcreate datavg /dev/vdblvcreate -n datalv -L 99.8G datavgmkfs.ext3 /dev/datavg/dat ...