页面缓存 ,数据源缓存,自定义缓存
<%@ OutputCache Duration="20" VaryByParam="none" %> //缓存整个页面,时间为20秒,
<%@ OutputCache Duration="20" VaryByParam="id" %> //根据id来缓存 (view.aspx?id=1 ,view.aspx?id=2)每个详细页面缓存一个
数据源缓存:
1.设置 objectDataSource的 CacheDuration="20"//时间
2.设置objectDataSource的 CacheExpirationPolicy="Absolute"
3.EnableCaching=True
3.自定义缓存
System.Web.Caching 命名空间提供用于缓存服务器上常用数据的类。这包括 Cache 类,该类是一个使您可以存储任意数据对象(如哈希表和数据集)的词典。它还为这些对象提供到期功能,并提供使您可以添加和移除对象的方法。您还可以添加依赖于其他文件或缓存项的对象,并在从 Cache 中移除对象时执行回调以通知应用程序。
System.Web.Caching.Cache 用于实现 Web 应用程序的缓存。
对于每个应用程序域均创建该类的一个实例,并且只要对应的应用程序域保持活动,该实例便保持有效。有关此类实例的信息通过 HttpContext 对象的 Cache 属性或 Page 对象的 Cache 属性来提供。
方法:
Add
将指定项添加到 Cache 对象,该对象具有依赖项、过期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序)。如果 Cache 中已保存了具有相同 key 参数的项,则对此方法的调用将失败。若要使用相同的 key 参数改写现有的 Cache 项,请使用 Insert 方法.
Insert
向 Cache 对象插入项。使用此方法的某一版本改写具有相同 key 参数的现有 Cache 项。
Remove
从应用程序的 Cache 对象移除指定项。
Item / Get
提供通过Name找到Value的方法
-----------------------------------------------------------------------------------------------------------------------------------------------
一下是从微软网上MSDN找到的一篇有关Cache的说明, 内容差不多,但是要更加具体一些:
您可以使用三种不同的技术将项添加到 Cache 对象中。根据应用程序要求的不同,您的选择可以从简单到复杂。
如果要利用 Cache 所提供的清理、到期时间和依赖项支持,则必须使用 Cache.Insert 方法或 Cache.Add 方法。
注意 Add 和 Insert 方法具有相同的签名,但它们之间存在细微的差别。首先,调用 Add 方法返回表示缓存项的对象,而调用 Insert 方法不是。其次,如果您调用这些方法并将已存储在 Cache 中的某个项添加到 Cache 中,那么它们的行为是不同的。Insert 方法替换该项,而Add 方法失败。
通过指定其键和值将项添加到缓存中
通过指定项的键和值,您可以像将项添加到字典中一样将其添加到缓存中。下面的代码将文本框的当前 Value 属性添加到 Cache 中。
[Visual Basic]Cache("txt1") = txtName.value[C#]Cache["txt1"] = txtName.value;
通过使用 Insert 方法将项添加到缓存中
重载 Insert 方法,允许您定义正在使用的版本的参数的值。例如,若要只添加项的键和值,则使用下面的代码。
[Visual Basic]Cache.Insert("MyData1", connectionString)[C#]Cache.Insert("MyData1", connectionString);
使用 Add 方法将项添加到缓存中
Add 方法与 Insert 方法具有相同的签名,但它返回表示您所添加项的对象。
[Visual Basic]Cache.Add("MyData1", connectionString)[C#]Cache.Add("MyData1", connectionString);
这两种方法都使您能够在很大程度上控制在 Cache 中保留项的条件。两种方法都支持使缓存的项依赖于外部文件或目录、Cache 中的其他键或任意一个的数组。将设有依赖项的项添加到 Cache 中将创建 CacheDependency 类的实例,它跟踪对您定义的依赖项的更改。如果这些依赖项的任何一个发生更改(包括被删除或移动),则将与该依赖项关联的项从 Cache 中移除。
将设有依赖项的项添加到缓存中
您可以使用 Add 或 Insert 方法中的 dependencies 参数将设有依赖项的项添加到 Cache 中。下面的示例演示使用 Insert 方法将设有依赖项(在 XML 文件上)的项添加到 Cache 中。
[C#]Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)));[Visual Basic]Cache.Insert("MyData1", connectionString, new CacheDependency(Server.MapPath(\\myServer\myConfig.xml)))
将设有到期策略的项添加到缓存中
您可以使用 absoluteExpiration parameter 参数和 slidingExpiration 参数将设有到期策略的项添加到 Cache 中。您可以定义绝对过期时间或弹性过期时间,但不能同时定义两者。在使用上述参数之一定义到期策略时,必须将另一个参数设置为零。Cache 类定义了两个自动执行该操作的字段:NoAbsoluteExpiration 和 NoSlidingExpiration。当定义绝对或弹性过期时间时,只要将适当的参数设置为其相应的字段值即可。下面的示例使用 Insert 方法将设有两分钟绝对到期时间的项添加到 Cache 中。
[C#]Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration);[Visual Basic]Cache.Insert("MyData1", connectionString, null, DateTime.Now.AddMinutes(2), NoSlidingExpiration)
下面的代码使用 Insert 方法将设有 30 秒弹性过期时间的项添加到 Cache 中。
[C#]Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30));[Visual Basic]Cache.Insert("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30))
注意 当设置绝对到期时间时,请使用 DateTime 结构。当设置弹性过期时间时,请使用 TimeSpan 结构。另外,如果您创建的弹性过期时间小于零或大于一年,则将引发 ArgumentOutOfRangeException 类。
您还可以使用 Add 或 Insert 方法通过在 CacheItemPriority 枚举中指定值定义缓存项的相对重要性。当 Web 服务器进行清理以释放内存时,这些相对优先级会对它有所帮助。Web 服务器会在移除具有较高优先级的项之前先从 Cache 中移除具有较低优先级的项。
将设有优先级设置的项添加到缓存中
您可以通过在 Add 或 Insert 方法上使用 priority 参数将设有优先级设置的项添加到 Cache 中。下面的示例使用 Add 方法将 priority 为 High 的项添加到 Cache 中。
[C#]Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null);[Visual Basic]Cache.Add("MyData1", connectionString, null, NoAbsoluteExpiration, TimeSpan.FromSeconds(30), CacheItemPriority.High, null)
这些方法还允许在项从缓存中移除时,使用 CacheItemRemovedCallback 委托通知应用程序。有关完整的示例,请参见从缓存中删除项时通知应用程序。
转载于:https://blog.51cto.com/937ii8759/1410814
页面缓存 ,数据源缓存,自定义缓存相关推荐
- ❤️缓存集合(一级缓存、二级缓存、缓存原理以及自定义缓存—源码+图文分析,建议收藏) ❤️
❤️缓存集合(一级缓存.二级缓存.缓存原理以及自定义缓存-源码+图文分析,建议收藏) ❤️ 查询 : 连接数据库 ,耗资源!一次查询的结果,给他暂存在一个可以直接取到的地方!--> 内存 : 缓 ...
- Mybatis | Mybatis 一级缓存、二级缓存、三级自定义缓存(Redis)
Mybatis 一级缓存.二级缓存.三级自定义缓存Redis实现 一.Mybatis 缓存 二.一级缓存 SqlSession级别 1.如何开启一级缓存 2.什么时候清除缓存? 3.什么时候缓存失效? ...
- 缓存设计方案 你了解吗 SpringBoot 快速集成实现一级缓存Redis和二级缓存Caffeine 可自定义扩展
项目背景: 在系统初期为了实现业务的快速增长.对系统没有很好的设计.后期想实现缓存,提升应用系统的性能. 面临问题: 缓存配置混乱.系统微服务化基本上需要实现缓存.序列化方式不统一 研发效率低下.每次 ...
- Mybatis缓存 自定义缓存
缓存 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制. 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进. 默认情况下,只启用了本地 ...
- ASP.NET缓存 之 Web服务器缓存
1.替换缓存 可以使用substitution动态更新缓存页 public static string GetTime(HttpContext context) { return DateTime.N ...
- java 项目做多级缓存_【开源项目系列】如何基于 Spring Cache 实现多级缓存(同时整合本地缓存 Ehcache 和分布式缓存 Redis)...
一.缓存 当系统的并发量上来了,如果我们频繁地去访问数据库,那么会使数据库的压力不断增大,在高峰时甚至可以出现数据库崩溃的现象.所以一般我们会使用缓存来解决这个数据库并发访问问题,用户访问进来,会先从 ...
- SpringBoot中通过自定义缓存注解(AOP切面拦截)实现数据库数据缓存到Redis
场景 若依前后端分离版本地搭建开发环境并运行项目的教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 基于上 ...
- springboot+mybatis集成自定义缓存ehcache用法笔记
今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...
- web页面上数据是否进行缓存要怎么判断_前端要知道的网络知识五:详细的介绍web缓存...
Web缓存是可以自动保存常见文档副本的HTTP设备.当Web请求抵达缓存时,如果本地有"已缓存的"副本,就可以从本地存储设备而不是原始服务器中提取这个文档.本文将详细介绍缓存的相关 ...
最新文章
- 李飞飞团队最新论文:如何对图像中的实体精准“配对”?(附代码论文)
- 封装,抽象,继承,多态
- 前端传值后端接收不到_解决vue get请求传参后端接收不到参数值(java sptingboot)
- springboot 切换日志实现
- 51nod1551-集合交易【hall定理,最大权闭合图,网络流】
- 无状态会话的ejb_Java EE状态会话Bean(EJB)示例
- 安装在电脑上的网络测试软件,iperf3 网络测试工具
- Hive beeline连接hiveserver2报错:User: root is not allowed to impersonate root
- Qemu复现雄迈摄像头固件漏洞
- 怎么关闭他人计算机网络,远程关机在局域网中,怎样能关闭别人的电脑呢 – 手机爱问...
- uni-app 微信、支付宝APP支付流程
- selenium鼠标操作
- 如何写好一篇优质的网站内容
- 版图DRC The following products could not be licensed sufficiently:- Calibre Interactive
- Atmel_Arduino系列引脚图大全
- 学术研究入门,如何下载论文?
- 【DXP】更换原理图模板的方法
- 思博伦OpenFlow性能测试白皮书(上)
- 985毕业的“搬砖人”,从“挂科废材”到程序员,这样的意外崛起,他到底经历了什么?
- 在领悟到什么道理后,你的人生从此轻松了起来?
热门文章
- 设计模式的七大设计原则:其三:依赖倒转原则
- lucene可用中文分词IKAnalyzer,maven pom下载代码及配置文件
- 接口测试和性能测试的区别
- Linux磁盘分区详解(parted)
- 测试用例的八大设计方法
- 03-04 元素定位工具
- 7系统内部系统组件禁止休眠_海康监控系统平台设计思路(二)
- python创建实例属性_Python学习笔记__6.5章 实例属性和类属性
- 需求获取安排计划书_若想成功融资,商业计划书必须秀色可餐:餐饮业商业计划书模板...
- php读取剪贴板内容,js如何处理剪贴板的内容?js处理剪贴板的内容的方法