【原】缓存之 HttpRuntime.Cache
独立小应用程序性能优化,减少数据库访问次数,提高应用程序处理效率
低风险创业: 
1、HttpRuntime.Cache
- HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了。但是非 Web 应用也是可以拿来用的。
- HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。
2、.绝对过期时间和相对过期时间
/// <summary>
/// 设置数据缓存,相对过期
/// --键值存在时会替换原数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="cacheKey">键值</param>
/// <param name="objObject"></param>
/// <param name="timeout">相对过期时间,最后一次访问所插入对象时与该对象到期时之间的时间间隔(单位:秒)</param>
public static void SetRelativeCache<T>(string cacheKey, T objObject, int timeout = )//默认30秒过期,30秒不访问就会过期
{
try
{
if (objObject == null) return;
var objCache = HttpRuntime.Cache;
//相对过期时间,最后一次访问的时间超过了时间间隔后才会到期
objCache.Insert(TypeName<T>() + cacheKey, objObject, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(timeout), CacheItemPriority.High, null);
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 设置数据缓存,绝对过期时间
/// --键值存在时会替换原数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="cacheKey"></param>
/// <param name="objObject"></param>
/// <param name="timeout">绝对过期时间(单位:秒,默认300秒以后就会过期)</param>
public static void SetAbsoluteCache<T>(string cacheKey, T objObject, int timeout = )//默认300秒
{
try
{
if (objObject == null) return;
var objCache = HttpRuntime.Cache;
//绝对过期时间, TimeSpan.Zero
objCache.Insert(TypeName<T>() + cacheKey, objObject, null, DateTime.Now.AddSeconds(timeout), Cache.NoSlidingExpiration, CacheItemPriority.High, null);
}
catch (Exception ex)
{
throw ex;
}
}
注意事项:
absoluteExpiration
类型:System.DateTime
所添加对象将过期并被从缓存中移除的时间。如果使用相对过期,则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。
slidingExpiration
类型:System.TimeSpan
最后一次访问所添加对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟,则对象在最后一次被访问 20 分钟之后将过期并从缓存中移除。如果使用绝对过期,则 slidingExpiration 参数必须为 NoSlidingExpiration。
【原】缓存之 HttpRuntime.Cache的更多相关文章
- HttpRuntime.Cache .Net自带的缓存类
.Net自带的缓存有两个,一个是Asp.Net的缓存 HttpContext.Cache,一个是.Net应用程序级别的缓存,HttpRuntime.Cache. MSDN上有解释说: HttpCont ...
- .NET使用HttpRuntime.Cache设置程序定时缓存
第一步:判断读取缓存数据 #region 缓存读取 if (HttpRuntime.Cache["App"] != null) { return HttpRuntime.Cache ...
- HttpRuntime.Cache的使用经验
配置文件 <appSettings> <add key="EnableCache" value="true"/> "/ ...
- HttpRuntime.Cache被清空的DataTable
将一个DataTable存到Cache中后,另一个页面新建变量并获取,操作变量,Cache中的数据也被改动了? 页面a.aspx 初始化并赋值,输出当前缓存内DataTable内数据条数 Page_L ...
- HttpRuntime Cache用法及参数解释
自己用到的: HttpRuntime.Cache.Insert("SchoolBindKcChangci", SchoolBindKcChangci, null, DateTime ...
- 缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别
先看MSDN上的解释: HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象. HttpRuntime.Cache:获取当前应用程序的Cache. 我们再用. ...
- ASP.NET HttpRuntime.Cache缓存类使用总结
1.高性能文件缓存key-value存储—Redis 2.高性能文件缓存key-value存储—Memcached 备注:三篇博文结合阅读,简单理解并且使用,如果想深入学习,请多参考文章中给出的博文地 ...
- 服务端缓存HttpRuntime.Cache的使用
HttpRuntime.Cache.Insert("缓存key", "缓存content", null, DateTime.Now.AddMinutes(3), ...
- 分布式缓存HttpRuntime.cache应用到单点登陆中_优化登陆
以前的设计方案,是我们在数据库中放一个表,用作存储验证登陆成功的用户,并且生成用户TOKEN(令牌) 分布式缓存+集群的解决方案图: 相应的代码: DE层中配置文件: receiveTimeout=& ...
随机推荐
- C#入门笔记1
C#是用于创建要运行在.NET CLR上的应用程序的语言之一,从C和C++语言演化而来,是微软专门为使用.NET平台而创建的.优点:就是彻头彻尾为.NET Framework设计语言. C#能编写什么 ...
- [Rational Rose 2007]解决启动报”解决无法启动此程序因为丢失suite objects.dll“的问题
问题根源1:不是丢失suite objects.dll文件,而是环境变量配置错误或无配置 假如安装目录如:C:\Program Files\Rational 需要配置环境变量的路径为:C:\Progr ...
- 小tip: 使用CSS将图片转换成黑白(灰色、置灰)[转]
小tip: 使用CSS将图片转换成黑白(灰色.置灰) 这篇文章发布于 2012年08月19日,星期日,20:41,归类于 css相关, SVG相关. 阅读 159943 次, 今日 146 次 ...
- 洛谷 P2910 [USACO08OPEN]寻宝之路Clear And Present Danger
题目描述 Farmer John is on a boat seeking fabled treasure on one of the N (1 <= N <= 100) islands ...
- 纪念一下我的第一个php扩展
C扩展代码 生成 so扩展文件( 很多文章介绍 生成so时候 喜欢用 # phpize ./configure ...... 刚开始掉进坑里面出不来 就是因为把这两个命令看成了一个 phpize ./ ...
- iview table里面 插入下拉列表组件(自定义组件)一定要加key,不加key,table开始会加载所有数据,然后再从第2页点回第一页,就会走onChange事件,混乱的逻辑,切记加:key
iview table里面 插入下拉列表组件(自定义组件)一定要加key,不加key,table开始会加载所有数据,然后再从第2页点回第一页,就会走onChange事件,混乱的逻辑,切记加:key 关 ...
- go get 升级所有
go get -u all go get -u go mod update go get -u full_package_name go get -u github.com/... // ('. ...
- 单表操作ORM
博客园 首页 新随笔 联系 管理 订阅 随笔- 0 文章- 339 评论- 29 Django基础五之django模型层(一)单表操作 本节目录 一 ORM简介 二 单表操作 三 章节作业 ...
- 2017年网络空间安全技术大赛部分writeup
作为一个bin小子,这次一个bin都没做出来,我很羞愧. 0x00 拯救鲁班七号 具体操作不多说,直接进入反编译源码阶段 可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass ...
- hihoCoder-1098-kruskal
如果起始点和终止点的父节点相同,就说明它们就已经在同一个连通分量里面,说明,起始点和终止点在此之前就已经被连入同一个分量之中,如果此时还将起始点和终止点连入此分量,就会形成回路,想象一个三角形,你大概 ...