二级缓存和三级缓存 关于AspNet缓存的疑问

来源:互联网  时间:2016/7/13 15:08:18

关于网友提出的“二级缓存和三级缓存 关于AspNet缓存的疑问”问题疑问,本网通过在网上对“二级缓存和三级缓存 关于AspNet缓存的疑问”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:二级缓存和三级缓存 关于AspNet缓存的疑问
描述:

我记得asp。net默认情况下数据操作后会留有缓存,我主要有这么几个疑问
1.缓存是否有保存时间设置,默认多少?可以设置的话如何设置?
2.比如我从数据库读取一批数据,绑定到前台后,我还能利用从缓存中读取数据吗?如果可以 我该怎么写代码读取?


解决方案1:

缓存技术的基本原理是把访问频繁的数据以及需要大量处理时间来创建的数据存储在内存中,当用户请求这些数据时,系统直接将内存中的数据返回给用户,大大提高程序的性能...
asp.net推出了以下几种缓存技术
1.整页缓存
例如要访问一个明星的信息页面(基本数据都是固定的),我们将整个页面缓存起来,当我们调用时直接从内存中读取...
2.页面部分缓存
与第一种比较讲局部页面缓存一下,需要更新的地方不缓存
3.应用程序缓存
就是将数据缓存起来,例如一个用户信息的集合

解决方案2:

1.缓存是否有保存时间设置,默认多少?可以设置的话如何设置? 
2.比如我从数据库读取一批数据,绑定到前台后,我还能利用从缓存中读取数据吗?如果可以 我该怎么写代码读取?
System.Web.Caching提供了Cache类,每个页面都有一个想关联的Cache,代码中直接使用就行了
例如查询出来DataTable,我们可以Cache.Insert(key, dt , dep, DateTime.Now.AddSeconds((double) (Factor*seconds)), TimeSpan.Zero, priority, null);  priority:优先级。 double:缓存时间
这样下次就可以取了。DataTable dt =  Cache[key] as DataTable
而且我们如果知道了这个表肯定有缓存,那么在对表维护的操作里边加上清除缓存。Cache. Remove(key)
这样就不会有脏数据了。不过Cache最好的是获取配置文件的时候,因此Cache可以绑定文件的Dependency.
配置文件修改,Cache自动清空。不用我们维护脏数据清理

解决方案3:

个人认为如果是经常要改变的数据不宜放在缓存中,就像SP1234说的那样这种操作会造成巨大的内存“抖动”。

解决方案4:

引用 13 楼 zhjhzf 的回复:
只要有缓存的地方 就有sp1234

是这样~ 解决方案5:

只要有缓存的地方 就有sp1234

解决方案6:

up
要说的上面已经说了 
缓存肯定是要设置时间的 
比如加载排行榜 等等的数据时候 
每周更新
你不设置时间   怎么办呢  
呵呵 
很简单的设置的  
百度一下吧  

解决方案7:

引用楼主 liyj19870228 的回复:
我记得asp。net默认情况下数据操作后会留有缓存,我主要有这么几个疑问
1.缓存是否有保存时间设置,默认多少?可以设置的话如何设置?
2.比如我从数据库读取一批数据,绑定到前台后,我还能利用从缓存中读取数据吗?如果可以 我该怎么写代码读取?

你说的这些都是基于数据库本身的缓存机制吧.
如果开启了缓存,第二次执行同样的数据库操作命令时,数据库会自动从缓存中读取相关数据,而不用从库中查询.当然前提是此缓存还没被回收.
asp.net用的更多的是页面outputcache.
此外IIS本身也具备缓存机制.
解决方案8:

一个使用SQL Server的BLL层数据缓存可能这样设计:
public static class BLL
{
  public static List 查询多个用户共同参与过活动的项目组(List users)
  {
    string userNames = 获取用户名列表(users);
    string key = userNames + "共同参与过活动的项目组";
    var cache = HttpRuntime.Cache;
    var result = (List)cache[key];
    if(result==null)
    {
        result = 查询数据库多个用户共同参与过活动的项目组(users);
        cache.Insert(key,result,一个SqlCacheDependency或者多个组成一个AggregateCacheDependency);
    }
    return result;
}

上一篇高山来客 大文件上传组件 无法自动删除临时文件
下一篇用asp判断别人是否已经填写过简历?
明星图片
相关文章
《二级缓存和三级缓存 关于AspNet缓存的疑问》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)