经验:使用 Cache 时注意 DateTime.Now

如果使用了缓存,比如方法 A 吧,那么你需要注意 DateTime.Now 对缓存的影响,简单来说,DateTime.Now 可能出现在两个地方:

  1. 在调用方,将 DateTime.Now 作为参数传递给了 A,如:A(DateTime.Now),如果 A 是采用 DateTime.Now 来构造缓存使用的 Key,那么此缓存几乎没有什么作用。
  2. 在要缓存的代码内部,这种情况下 DateTime.Now 可能就失去了意义,如:调用方可能期望的是使用实时的 DateTime.Now 进行倒计时。

解决思路非常简单,此处就不赘述了。

时间: 2024-11-01 20:15:42

经验:使用 Cache 时注意 DateTime.Now的相关文章

Nginx/tengine做cache时缓存机制—存不存、存多久、用不用方法论(图自画)

Nginx/tengine(后面名称只写nginx了)单纯做cache性能比不过ats,特别是在磁盘处理方面,不过论综合能力nginx就是大拿了,他集web服务器.负载均衡.cache三种能力于一身,可以说是非常综合性的选手.比如说一个中型网站的场景选型,前端是负载,后端托着一堆apache服务器,现在该到前端负载选型的了,虽然lvs和ha单纯从负载的性能要比nginx好一些,但我还是会选nginx,因为nginx在做负载的同时,可以将热点的静态内容cache一遍,做一次加速,无形间减轻了后端w

细说 ASP.NET Cache 及其高级用法

许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术. 而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术. 以前我在[我心目中的Asp.net核心对象] 这篇博客中简单地提过它,今天我打算为它写篇专题博客,专门来谈谈它,因为它实在是太重要了.在这篇博客中, 我不仅要介绍它的一些常见用法,还将介绍它的一些高级用法. 在上篇博客[在.net中读写config文件的各种方法] 的

细说 ASP.NET Cache 及其高级用法【转】

阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先级 缓存项的移除通知 巧用缓存项的移除通知 实现[延迟操作] 巧用缓存项的移除通知 实现[自动加载配置文件] 文件监视技术的选择 各种缓存方案的共存 许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术. 而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用

025-缓存Cache

如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差.而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能.这样无论有多少人访问都只访问一次数据库,数据库压力不变.缓存(Cache)是一种用空间换取时间的技术,存在于计算机中很多地方,用来将一些慢速设备中的常用数据保存在快速设备中,取数据的时候直接从快速设备中取.比如CPU二级缓存.内存.windows文件读取缓存.缓存存在失效的问题:为了保证从缓存中读取数据和慢速数据(数据

ASP.net Cache丢失的问题诊断

1 业务需求 缓存来自数据库的数据,不用频繁到数据库中加载. 2 使用模型 添加一个类 MyCache,然后在里面添加静态属性字段: public static DataTable FolderData { get { string key = "FolderData"; object o = HttpRuntime.Cache[key]; if (o == null) { //从DB中加载数据 o = LoadFromDB(); //添加到缓存中(分钟过期) HttpRuntime.

asp.net,缓存Cache

缓存Cache: 1>直接使用Cache["content"],缓存与Session不同,所有用户都可以共享.永不过期,由服务器自己维护,当内存不够时,会将老的缓存释放掉. 2>设置绝对过期日期.Cache.Insert("nowTime", DateTime.Now, null, DateTime.Now.AddSeconds(7), TimeSpan.Zero); 3>设置滑动过期日期: Cache.Insert("nowTime&q

Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache

在ASP.NET中有两个类都提供缓存支持, 一个是HttpRuntime类的Cache属性, 另一个是HttpContext类的Cache属性. 通过查看这两个属性的类型可以发现其实这两个属性都是System.Web.Caching.Cache类的实例.那为什么需要同时提供两种支持呢? 查询MSDN后发先,这两个缓存的应用的场景不一样, HttpRuntime.Cache是应用程序级别的缓存, HttpContext.Current.Cache是针对Web上下文定义的, 是一个局部的缓存.(这段

缓存二、HttpRuntime.Cache用法

上一篇写了Asp.net页面缓存,本篇介绍在服务器端进行缓存.微软.net给我提供了HttpRuntime.Cache对象进行缓存.个人对缓存的理解是,将从数据库.文件.或业务逻辑计算出来的数据,保存在内存中,当下一次遇到相同内容的请求就直接将保存在内存中的数据返回给请求者.这样做的好处是可以提高访问效率,减少文件或是数据库的读取,属于"以空间换时间",适当的运用好Cache可以很大程度提高程序性能.关于Cache本文所包含的内容有 Page.Cache,HttpRuntime.Cac

HttpRuntime.Cache再学习

摘抄: 可以看到:读缓存,其实是在调用Get方法,而写缓存则是在调用Insert方法的最简单的那个重载版本. 注意了:Add方法也可以将一个对象放入缓存,这个方法有7个参数,而Insert也有一个签名类似的重载版本, 它们有着类似的功能:将指定项添加到 System.Web.Caching.Cache 对象,该对象具有依赖项.过期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序). 然而,它们有一点小的区别:当要加入的缓存项已经在Cache中存在时,Insert将会覆盖