缓存是把数据存在服务端
缓存的数据是共享的,任何用户来获取的数据都是一样的;
对于某些数据,经常被查询,但是不怎么改动。这样的数据放在缓存中。
缓存改善网站性能
缓存分类:页面缓存、数据源缓存、自定义缓存
自定义缓存:
将数据放入缓存:
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);