写在前面

针对一些经常访问而很少改变的数据,使用缓存,可以提高性能。缓存是一种用空间换取时间的技术,说的直白点就是,第一次访问从数据库中读取数据,然后将这些数据存在一个地方,比如内存,硬盘中,再次访问的时候,不必再从数据库中读取,而是从内存或者硬盘中读取数据,可以提高访问速度。

缓存

缓存是一种利用空间换取时间的技术,通俗点也就是将得到的数据放在内存中或者硬盘中,在这段时间内服务器不去读取数据库,或真实的数据源,而是读取你存在内存中的数据。

作用:缓存可以有效的缓解数据库的压力。

一个例子

还是先看一个简单的例子,然后对缓存有一个直观的了解。

 public partial class CacheIndex : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DateTime dt = DateTime.Now;
//如果缓存中没有currentTime的值,则设置,否则输出缓存中的值
if (Cache["currentTime"] == null)
{
//将当前时间存入缓存
Cache["currentTime"] = dt;
//输出值
Response.Write("第一次读取的时间:"+dt.ToString("yyyy-MM-dd HH:mm:ss"));
}
else
{
//否则输出缓存中的值
dt = (DateTime)Cache["currentTime"];
//输出值
Response.Write("从缓存中读取的时间:"+dt.ToString("yyyy-MM-dd HH:mm:ss"));
} }
}
}

第一次访问页面时,会读取当前时间,然后将其写入缓存,刷新页面你会发现,之后读取的值,来自缓存中的数据。如果要清空缓存,可以将其设置为null。

这种设置缓存的方式,是最直观也是最简单的方式。

那么我们是否可以为其设置过期时间呢?当然是可以的,下面看这样一个例子:

  public partial class CacheIndex : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DateTime dt = DateTime.Now;
//如果缓存中没有currentTime的值,则设置,否则输出缓存中的值
if (Cache["currentTime"] == null)
{
//将当前时间存入缓存
/*
@第一个参数:缓存键
@第二个参数:缓存的值
@第三个参数:缓存依赖项,可以为null,不为其设置依赖项。
@第四个参数:缓存时间,为30秒
@第五个参数:缓存过期时间类型,这里是绝对过期时间,每刷新一次页面之后30秒缓存过期。
*/
Cache.Insert("currentTime", dt, null, DateTime.Now.AddSeconds(), System.Web.Caching.Cache.NoSlidingExpiration);
//输出值
Response.Write("第一次读取的时间:" + dt.ToString("yyyy-MM-dd HH:mm:ss"));
}
else
{
//否则输出缓存中的值
dt = (DateTime)Cache["currentTime"];
//输出值
Response.Write("从缓存中读取的时间:" + dt.ToString("yyyy-MM-dd HH:mm:ss"));
} }
}
}

无法同时设置 absoluteExpiration 和 slidingExpiration 参数。如果要让缓存项在特定时间到期,可将 absoluteExpiration 参数设置为特定时间,并将 slidingExpiration(滑动过期时间) 参数设置为 NoSlidingExpiration。

如果要让缓存项在最后一次访问该项后的某段时间之后到期,可将 slidingExpiration 参数设置为到期间隔,并将 absoluteExpiration(绝对过期时间) 参数设置为 NoAbsoluteExpiration。

总结

这里简单介绍了缓存的概念,以及举了一个缓存的例子。这里面需要对缓存中的两种过期时间好好体会,绝对过期时间和滑动过期时间。

[Asp.net]缓存简介的更多相关文章

  1. [Asp.net]缓存之页面缓存,控件缓存,缓存依赖

    写在前面 上篇文章介绍了缓存的基本概念及用途,另外也举了一个简单的例子,数据缓存(将一些耗费时间的数据加入到一个对象缓存集合中,以键值的方式存储.可以通过使用Cache.Insert()方法来设置缓存 ...

  2. 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介

    ASP.NET 5简介 ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一 ...

  3. asp.net—缓存

    1.页面缓存 要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可. <%@ OutputCache CacheProfile=" " NoStore= ...

  4. [转]C#基础回顾:Asp.net 缓存

    本文转自http://www.cnblogs.com/stg609/archive/2009/03/22/1418992.html 缓存的作用      你买电脑的时候,是否会在意CPU的二级缓存?是 ...

  5. Asp.Net缓存(2)

    缓存页的多个版本 ASP.NET 允许在输出缓存中缓存同一页的多个版本.输出缓存可能会因下列因素而异: 初始请求 (HTTP GET) 中的查询字符串. 回发时传递的控制值(HTTP POST 值). ...

  6. Asp.Net缓存(1)

    知其根本,方能应用.MSDN上的缓存讲解.先看原来讲解. Asp.Net缓存概述 通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能. 在这些情况下 ...

  7. ASP.NET缓存策略经验谈

    要提升ASP.NET应用程序的性能,最简单.最有效的方式就是使用内建的缓存引擎.虽然也能构建自己的缓存,但由于缓存引擎已提供了如此多的功能,所以完全不必如此麻烦.在很大程度上,ASP.NET开发者在W ...

  8. (转)ASP.NET缓存全解析6:数据库缓存依赖

    ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓 ...

  9. ASP.NET缓存 Cache

    缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论多 ...

随机推荐

  1. eclipse preference plugin development store and get

    eclipse plugin development: E:\workspaces\Eclipse_workspace_rcp\.metadata\.plugins\org.eclipse.pde.c ...

  2. 通过jarjar.jar来替换jar包名的详细介绍

    有时候我们根据一些场景 需要替换第三方jar包的包名,比如Android广告平台sdk,更换他们jar包包名的话,可以防止市场检测到有广告插件,所以,今天就介绍一下如何使用jarjar.jar工具来替 ...

  3. Myloader参数说明

    -d, --directory 备份文件的目录 -q, --queries-per-transaction 每次事务执行的查询数量,默认是1000 -o, --overwrite-tables 如果要 ...

  4. 转 可能是最漂亮的Spring事务管理

    Snailclimb 2018年05月21日阅读 4246 可能是最漂亮的Spring事务管理详解 Java面试通关手册(Java学习指南):github.com/Snailclimb/… 微信阅读地 ...

  5. SNF快速开发平台MVC-EasyUI3.9之-ueditor富文本编辑在 asp.net MVC下使用步骤

    mvc项目中用到了这个富文本编辑就试着把遇到的问题个使用步骤在这里记录一下,希望大家少走弯路. 1.首先我们先下载net版本的uediot 2.然后把整个文档拷贝到我们的项目中,记得是整个 把下载的文 ...

  6. 【IOS】java 与oc之间的比较

    Cocoa是什么,Cocoa是使用OC语言编写的工具包,里面有大量的类库.结构体,其实就相当于java中的标准API.C++中的标准库.OC中没有命名空间的概念,所以使用加前缀来防止命名冲突,因此你会 ...

  7. vue环境配置脚手架环境搭建vue工程目录

    首先在初始化一个vue项目之前,我们需要下载node.js,并且安装! 下载地址: nodejs.cn/download 安装完成之后,windows+r 运行命令 cmd  输入node -v  检 ...

  8. 【Unity】ShareSDK、SMSSDK的基本使用与常见问题

    概要 测试使用ShareSDK的一些常用功能.包括: 用微博帐号做第三方登录 获取用户的帐号详细信息 获取好友列表 分享功能 测试使用SMSSDK插件,包括: 导入插件,解决包冲突 短信登录功能:发验 ...

  9. Java编程的逻辑 (79) - 方便的CompletionService

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  10. webstorm开发vue项目环境配置

    1.首先安装nodejs,官网下载nodejs安装包,默认安装NPM包管理器(国内使用npm需要FQ,也可以使用淘宝的镜像:npm install -g cnpm –registry=https:// ...