HttpContext.Cache缓存的简单实用


Cache和Application都是应用程序级的缓存机制; 两者都是使用键值对来存储对象,两者都是应用程序同生命周期(在cache不设置缓存策略的情况下)
Session是用户会话级的缓存机制;

#插入缓存信息

HttpContext.Current.Cache["token"] = "tokenValue";
HttpContext.Current.Cache.Insert("token1", "tokenValue1");

#插入带有过期时间的缓存信息

设置过期时间有两种方式:

  • absoluteExpiration:
    所插入对象将过期并被从缓存中移除的时间。
    如果使用绝对过期,则 slidingExpiration 参数必须为 Cache.NoSlidingExpiration。

  • slidingExpiration:
    最后一次访问所插入对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,
    则对象在最后一次被访问 20 分钟之后将过期并被从缓存中移除。如果使用可调过期,则absoluteExpiration 参数必须为 System.Web.Caching.Cache.NoAbsoluteExpiration。

//表示最后一次访问缓存后两个小时过期
HttpContext.Current.Cache.Insert("token2","tokenValue2", null, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(2));
//表示缓存两个小时后过期
HttpContext.Current.Cache.Insert("token3","tokenValue3", null,DateTime.Now.AddHours(2), Cache.NoSlidingExpiration);

Cache.Add方法,用法和Insert差不多,区别在于Add碰到该key原来有赋过值会失败,Insert则不会,而会替换原有值;Add会返回被缓存数据项,Insert不会

#插入带文件依赖的缓存信息

string path = Server.MapPath("/Test/Config.xml");
CacheDependency  cacheDependency=new CacheDependency(path);
HttpContext.Current.Cache.Insert("config", "配置", cacheDependency);

Config.xml文件变化,缓存就失效了!

string path = Server.MapPath("/Test/Config.xml");
CacheDependency  cacheDependency=new CacheDependency(path,DateTime.Now.AddDays(1));
HttpContext.Current.Cache.Insert("config", "配置", cacheDependency);

创建缓存后1天之后对文件所做的更改才会影响缓存依赖。在这1天内可以随便更改而不会影响缓存依赖;

#移除缓存信息

HttpContext.Current.Cache.Remove("key");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值