Cache 概述

基本用法

using System.Web.Caching
DataSet ds = new  DataSet();
//
Cache.Insert( " Data " ,ds);

将DataSet中的数据缓存,不设置过期时间。

Cache.Insert("Data",ds,null,DateTime.Now.AddMinutes(2),TimeSpan.Zero);

绝对时间过期,缓存在2分钟后将过期。

Cache.Insert( " Data " ,ds, null ,DateTime.MaxValue,TimeSpan.FromMinutes( 2 ));

平滑时间过期,缓存在连续2分钟没有访问则过期。

Cache.Add方法也可添加缓存,但只能添加缓存中没有项,有则失败,但不出异常;而Cache.Insert方法能覆盖原来的重复项。

缓存依赖

CacheDependency  cd = new  CacheDependency (Server.MapPath( " myFile.txt " ));
DataSet ds
= new  DataSet ();
//
Cache.Insert ( " Data " ,ds,cd);

myFile.txt文件被修改后,缓存失效,否则缓存一直存在。

缓存更新策略
一般做法:

DataSet ds  =   new  DataSet();
//
if  (Cache[ " Data " ==   null )
{
    ds 
= GetData();
    Cache.Insert(
"Data", ds, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero);
}

else
{
    ds 
= (DataSet)Cache["Data"];
}

此为被动更新,如果缓存为空,则为数据库获取数据,如果缓存不为空,则直接从缓存中获取数据。缺点就是如果缓存失效时,去访问数据得从数据库中查询,花费时间。可以利用缓存的回调功能让缓存过期后自动续建,实现自动更新的目的。

protected   void  CacheCallback( string  key,  object  value, CacheItemRemovedReason remov)
{
        
//缓存过期处理方法
}

 

DataSet ds  =   new  DataSet();
//
Cache.Insert( " Data " , ds,  null , DateTime.Now.AddMinutes( 2 ), TimeSpan.Zero, CacheItemPriority.Default, CacheCallback);

缓存过期时回调用CacheCallback方法实现自动更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FancyCache 概述 FancyCache是一个可以将系统内存或闪存虚拟成硬盘缓存的软件。它把从硬盘中读取的数据存入系统内存或闪存,使系统在下次访问该数据时可以很快从内存读取,避免再次读取速度较慢的硬盘,从而突破硬盘瓶颈,提升系统性能。 FancyCache还具有检测和利用系统未识别内存的功能,解决32位Windows操作系统无法完全使用4G或更多内存的问题。通过将检测到的系统未识别内存用作硬盘缓存的方式,FancyCache使计算机可以利用全部安装的内存。 基本原理 FancyCache为硬盘分配内存作缓存,并拦截系统发送至硬盘的IO请求。如果IO请求读取的数据已经在缓存中,则直接读取缓存中的数据并完成IO请求。否则数据则从硬盘中读取出来,并存入缓存,同时完成IO请求。由此可见,从缓存读取的数据量越多,则系统性能提升的越多。 FancyCache Principle Fig. 1 FancyCache Principle Fig. 2 主要特性 支持 LRU (最近最少使用调度算法) 和LFU (最近最不常用调度算法) 缓存算法, 支持 读写缓存、仅读缓存和仅写缓存 三种缓存策略, 支持 直接写入 和 延迟写入 两种写入模式, 支持 系统内存、系统未识别内存、闪存盘、固态硬盘SSD作为缓存, 支持对分区或整个硬盘缓存, 支持 TRIM 指令, 支持可视化性能监视统计, 支持动态硬盘, 支持NTFS junction point (符号连接), 支持自定义文件系统, 支持即插即用。 为什么使用FancyCache? Windows操作系统本身已经实现了基于文件的缓存系统,我们还需要再使用一个缓存系统FancyCache吗? 某些应用程序会绕过Windows操作系统自身的缓存系统; Windows操作系统的缓存系统是基于全局进行缓存,即对所有数据进行缓存,而FancyCache可以根据用户需要,设置仅对某一特定分区进行缓存。在同等缓存容量下,后者将更具目标性,从而提高缓存命中率。 FancyCache可以识别系统未识别内存,将其利用作缓存; FancyCache可以将闪存盘或SSD固态硬盘用作缓存,提升普通硬盘的访问能力。 软件截图 FancyCache Main UI FancyCache Performance Monitor UI 支持的操作系统 Windows XP, Windows 2003, Windows Vista, Windows 2008, Windows 7, Windows 2008 R2 更多信息 使用帮助 评测应用 FancyCache正进行Beta测试! FancyCache Beta测试版本 0.8.0 已经发布。如果您有时间并愿参与我们的测试,我们表示非常感谢! 测试版本有效期为180天,可以从以下地址获取, 分区版(可对每个分区缓存):进入下载页面 硬盘版(可对整个硬盘缓存):进入下载页面 测试授权文件:点击这里查找最新的测试授权文件,以便继续试用该软件。 我们强烈建议您在非实际生产和工作环境中测试beta版本软件,以免造成不必要的损失。同时Beta测试者请注意在测试之前对重要文件和数据先进行备份,以防万一。如遇系统无法启动等致命问题,用户可以尝试进入安全模式卸载软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值