ASP.NET整理:缓存机制之数据缓存

来源:互联网 发布:货代操作软件 编辑:程序博客网 时间:2024/05/18 01:18

A.XML中取数据:

ASP.NET整理:缓存机制之数据缓存
ASP.NET整理:缓存机制之数据缓存

分析:

var node=dom.DocumentElement.SelectSingleNode("//pagesize");

xpath写法,如下表,详见w3c:  http://www.w3school.com.cn/xpath/xpath_nodes.asp

,这里双斜杠意为:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 

ASP.NET整理:缓存机制之数据缓存

 

Cache  缓存对象和 Application类似,都是全局的

区别的地方是,当内存紧张时,首先Cache可能会丢失 ,然后是session

提出一个问题,缓存依赖;

   1.绝对超时

   2.相对超时

   3.文件依赖

   4.数据库依赖:

      两种模式:轮询,通知(必须是sql2005以上,启动数据库的通知服务)               

=============

实战中:

缓存大数据量,一般是数据集或集合等。

缓存通常没有依赖,那么我们做一个功能,叫清理缓存(刷新缓存)

      缓存 OK      

      缓存 OK

      缓存 OK

      缓存 OK

               【清理】

其实质就是直接把Cache["XXXX"]中的内容覆盖一遍达到更新的作用

 

B.应用程序缓存的应用:Cache函数

Cache["cacheName"] value;   //最简单的设置缓存的方法,这样子设置的是永久缓存

以上这种方法如果碰到需要设置缓存的有效期,依赖项的时候就无能为了,解决方法如下:

1.使用Add()方法

Cache.Add("test1","使用Add缓存测试",null,DateTime.Now.AddSeconds(7),

TimeSpan.Zero,CacheItemPriority.High,null);

使用Add()方法必须要将它的7个参数填写完整,所以灵活性不够

 

2.使用Insert()方法

a.只需要键和值2个参数就可以添加缓存

Cache.Insert("test2", "使用Insert缓存测试");

b.添加依赖项的缓存

Cache.Insert("test3", "使用依赖项的缓存",

new System.Web.Caching.CacheDependency(null,dependencies))

//这里的dependencies是缓存的依赖项,当更改任何依赖项时,该随想无效并从缓存中移除

c.设置有效期策略的缓存

Cache.Insert("test4","带有效期的缓存",DateTime.Now.AddMinutes(1d),

System.Web.Caching.Cache.NoSlidingExpiration);

d.添加优先级的缓存

Cache.Insert("test5",  "带优先级的缓存",  null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

System.Web.Caching.Cache.NoAbsoluteExpiration,

System.Web.Caching.CacheItemPriority.High,  null);

CacheDependency说明:

 

C.检索缓存注意事项:

由于缓存易失,所以在从缓存中检索应用程序的数据缓存对象时,需要先判断是否为null,然后再检索。

D.移除缓存

1.自动移除:

当出现缓存已满、过期、依赖项更改等情况时,缓存项会自动移除

2.显式移除:

Cache.Remove("test1");

E.实例

例一:

ASP.NET整理:缓存机制之数据缓存

 

例二:

 

假设现在图书表中有一个列表示点击次数(click),当click次数大于200时,进行缓存,而点击次数小于200的时候不进行缓存:

ASP.NET整理:缓存机制之数据缓存