Cache缓存以及其它知识
来源:互联网 发布:vb post教程 编辑:程序博客网 时间:2024/05/01 13:04
一、 Cache缓存 (在所有的用户中共享)
1.第一个用户访问时将在数据库中查出的数据存在Cache中,别的用户再次访问时,去Cache中访问,不用再次连接数据库了。
书写:Cache["article"] = dt;
if (Cache["article"]==null)
{
数据库的连接,查询,将值放在 DataTable中;
Cache["article"] = dt;
}
dt = Cache["article"] as DataTable;//转换格式
this.GridView1.DataSource =dt;//将值附给控件
this.GridView1.DataBind();
2.如果数据库中的值发生改变,而我们已经在程序中建立缓存那么每一次的访问都是缓存中的,页面中的内容将无法经行更新。
所以我们对Cache要有过期时间,或者清除。
a)每隔一段时间更新一次
if (Cache["article"]==null)
{
数据库的连接,查询,将值放在 DataTable中;
Cache.Insert("article",dt,null,DateTime.UtcNow.AddSeconds(5),TimeSpan.Zero);//设置过期时间,当时间达到时,Cache自动
清除
}
b)//根据外部条件更新,当监视的文件发生改变时,Cache过期
if (Cache["article"]==null)
{
数据库的连接,查询,将值放在 DataTable中;
CacheDependency cd=new CacheDependency("D:\\笔记.txt");
Cache.Insert("article",dt,cd,DateTime.UtcNow.AddMinutes(5),TimeSpan.Zero);
}
c)根据访问情况更新,如果在20秒之内没有人访问那么过期,如果有人访问,那么时间就会重新定为20秒
if (Cache["article"]==null)
{
数据库的连接,查询,将值放在 DataTable中;
CacheDependency cd=new CacheDependency("D:\\笔记.txt");
Cache.Insert("article",dt, null, DateTime.MaxValue,TimeSpan.FromSeconds(20));
}
d)根据数据更新情况更新,当数据变化时,就使用命令将 Cache过期
//设置cache里面的article键对应的对象过期
Cache.Remove("article");//移除
二、其它
1.将一个变量转换为一个类,使用as关键字。
例如:Cache["article"] as DataTable;
2.如果将变量或者类型实例声明为静态的则不会每次加载页面都重新实例化,能够保存上次的值
例如: static List<Article> list = new List<Article>();
当再次访问页面时list不会重新建立,而会保存上次的内容。
3.GridView的数据源( this.GridView1.DataSource =list或datatable或dataset;)除了datatable,dataset之外还可以是List
4.数据库获取时间的方法是:getdate();
C#中获取时间:DateTime.Now();是获取当前时间。还有一些其它方法。
数据库中的时间格式到毫秒,在C#中使用 Convert.ToDateTime().ToString("yyyy-MM-dd:hh-mm-ss");改为2013-11-15:小时:分钟:秒
- Cache缓存以及其它知识
- Cache缓存以及其它知识
- 缓存cache知识
- Cache,MemCache,Application,Cookie等其它缓存汇总
- Thinkphp的缓存(Cache)以及S函数
- 缓存cache
- 缓存 Cache
- 缓存 Cache
- 缓存--cache
- Cache缓存
- Cache缓存
- Cache缓存
- paip.cache 缓存架构以及性能提升总结
- Hibernate缓存体系之查询缓存(query cache),以及list和iterate方法的区别
- 计算机底层知识拾遗(六)理解页缓存page cache和地址空间address_space
- 计算机底层知识拾遗(六)理解页缓存page cache和地址空间address_space
- Session缓存和Cache缓存
- Session缓存和Cache缓存
- IOS恢复动画
- 黑马程序员面试题之银行业务调度系统
- MassTransit 探究初步
- 插入排序
- RaiseErrorText与CancelOperation冲突
- Cache缓存以及其它知识
- matlab声音处理
- matlab
- java中的队(Queue)和栈(Stack)
- ABAP 锁对象与加锁机制 .
- DWR2.0 引用 ScriptSession的一些介绍
- 获得执行jar的运行路径-使用java.class.path 和 codesource的location
- js提交from表单 多参数
- linux之sed用法