一方面,缓存应该尽量大量使用。另一方面,使用缓存应该像珍惜眼睛一样,尽量只缓存需要缓存的数据。如果缓存的数据没有什么使用机会,你的代码设计肯定是失败了。

解决方案 »

  1.   

    单纯从技术上说,你可以通过增加物理的内存来“彻底”解决你的问题。从设计上说,不知道你对缓存滥用程度能够得到抑制。缓存垃圾数据就会造成内存数据“抖动”——有用的数据在内存里呆不长久,需要反复装入。
    另外,用时间来控制缓存通常实在是太初级和随意的做法,有很多中缓存依赖控制方法 。不过不知道你的设计是怎样的,也许被迫不得不使用这种方法。我就不多说了。
      

  2.   

    我在系统中使用缓存的目的其实就是为了提高请求的响应速度。
    由于系统设计中要求单个页面的执行时间在10毫秒以下,而操作一次数据库不管什么情况下都会超过20毫秒(大家可以去试试),所以在执行页面时既不能从数据库中取数据,也不可将执行的另外一些结果(如访问次数)更新到数据库中。在这样的缓存中,我分析它只能依赖于某个时间而过期,其它的如数据库依赖等都是不现实的。在至强2.8G的CPU,512MB双通道的windows 2003 server服务器上,难道不支持6个数据表的缓存(这些表的记录在100条左右)?谢谢上面两位兄弟的分析,还望各路好汉多加指点。