web程序入门六(缓存)

缓存是把数据存在服务端

缓存的数据是共享的,任何用户来获取的数据都是一样的;

对于某些数据,经常被查询,但是不怎么改动。这样的数据放在缓存中。

 缓存改善网站性能

缓存分类:页面缓存、数据源缓存、自定义缓存

 

自定义缓存:

将数据放入缓存:

Cache["key1"] = "abc";        项目中直接使用这种方法

Cache.Insert("key1","abc",null,DateTime.Now.AddMinutes(20),TimeSpan.Zero);   同上

DateTime.Now.AddMinutes(20) 设置过期时间为20分钟

Cache.REmove("key1")  删除缓存

Asp.net自带缓存类似session

 

页面缓存:

将整个第一次返回的HTML代码缓存起来

在aspx页面中加入<%@ OutputCache  Druation="5"  VaryByParam="*"%>

Druation="5"  缓存五秒

VaryByParam   根据参数来缓存页面

VaryByParam="ID"  根据不同的参数ID来缓存页面

VaryByParam="*"   根据所有的参数来缓存页面

 

 数据源缓存:

数据源控件缓存 objectsource

如 ListView 控件   在属性中添加缓存时间

 

文件缓存依赖:

数据源是一个文件

当数据源中数据改变,通过文件缓存依赖项,来通知缓存

string  fileContent = File.ReadAllText(@"c:\test.txt")  ;

CacheDependency   cacheDepend  = new  CacheDependency(@"c:\test.txt")    创建文件缓存依赖项

Cache.Insert(“key1” ,fileContent,cacheDepend  )

 

 数据库缓存依赖:

<add  name="mysqlDb"  connectionStringName="conStr2"  pollTime="15000">   连接字符串

string sql = "select * from ClassInfo";

DataTable  da = SqlHelper.GetTable(sql, CommandType.Text);

SqlCacheDependency   sqlchache = new  SqlCacheDependency(“mysqlDb”,“classInfo”);      classInfo监测的表名

Cache.Insert("key1", da, sqlchache);

 

posted on 2017-12-02 15:15  yanmay  阅读(178)  评论(0编辑  收藏  举报

导航