.net中有效的使用Cache(来源不清)

Cache 即高速缓存 ,我想很多人对他的第一印象一定像我一样,感觉他一定能提高系统得性能和运行速度。的确。Net推出cache的初衷确实是这样的。那么cache是如何提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。

1.       Cache 是如何工作的。

l         Cache 是分配在服务器上的一个公共的内存片。

所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是cache越多越好。

l         cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。

l         c.cache 可以存放任何对象

2.       Cache 如何创建以及如何销毁。

l         创建cache

在。Net环境下通过Cache.Insert(string key,object o)方法创建。其中key 代表cache的ID,o代表存到cache里的对象。

l         销毁cache.

通过方法Cache.Remove(string key)其中key 代表cache的 ID.

l         调用cache.

Cache支持装箱/拆箱操作。如你可以把一个DataSet对象ds通过Cache.Insert(“dsCache”,ds)的方式存到Cache中,可以通过拆箱操作 DataSet ds = (DataSet)Cache[“dsCache”]来访问它。

3.       什么时候用cache.

Cache 一般用于数据较固定,用的较频繁的地方。例如可以把进销存系统中可以把产品信息存入cache,在用户调用产品信息时通过调用cache即可,这样从很大程度上减少了用户与数据库的交互,提高了系统的性能。反之,cache不适合用在数据变动快,使用范围很窄的地方。例如把一个具体采购单存入 cache中。

4.       cache 调用注意事项。

Cache是有时间限制的。超过了服务器设置的过期时间,就会被服务器回收。当cache被回收后对应的内存块就会被清空,再次通过cache[“cachekey”]访问对象时返回的就是null值。所以以下这种调用就会出现异常

DataSet ds = (DataSet)Cache[“cacheds”];

DataRow dr = ds.Table[0].Row[0];  //出错,ds为null值,不存在表0。

正确的写法应该是:

DataSet ds

If(Cache[“cacheds”] != null)

{

ds = (DataSet)Cache[“cacheds”];

}

Else

{

ds= GetDsFromDataBase();

}

DataRow dr = ds.Table[0].Row[0];

转载于:https://www.cnblogs.com/lsjwzh/archive/2008/03/09/1097099.html

.net中有效的使用Cache相关推荐

  1. Linux操作系统中内存buffer和cache的区别

    我们一开始,先从Free命令说起. free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free                      total  used   free  s ...

  2. Linux中内存buffer和cache的区别

    Linux中内存buffer和cache的区别 分类: LINUX 原文地址:Linux中内存buffer和cache的区别 作者:platinaluo 细心的朋友会注意到,当你在linux下频繁存取 ...

  3. Linux内存中的 buffer 和 cache

    Linux内存中的 buffer 和 cache 到底是个什么东东? Linux 中的 free 命令,会输出: total 总量 used  已使用 free 空闲 shared 共享内存 buff ...

  4. Linux操作系统中内存buffer和cache的区别--从free命令说起(转)

    原文链接:http://os.51cto.com/art/200709/56603.htm 我们一开始,先从Free命令说起. Free free 命令相对于top 提供了更简洁的查看系统内存使用情况 ...

  5. linux配置内存buffer,Linux中内存buffer和cache的区别

    Linux中内存buffer和cache的区别 发布时间:2007-08-31 09:52:55来源:红联作者:ivepace free free 命令相对于top 提供了更简洁的查看系统内存使用情况 ...

  6. linux buffer cache 过高_怎么理解内存中的Buffer和Cache?

    1|0缓存 从 free 命令可以看到,缓存其实就是 Buffer 和 Cache 两部分的总和 字面意思,Buffer 是缓存区,Cache 是缓存,两者都是数据再内存中的临时存储 2|0Buffe ...

  7. 怎么理解内存中的Buffer和Cache

    本文是通过学习倪朋飞老师的<Linux性能优化实战> :怎么理解内存中的Buffer和Cache? 怎么理解内存中的Buffer和Cache? free 数据的来源 proc 文件系统 案 ...

  8. Linux内存中的 buffer 和 cache 到底是个什么东东?

    Linux 中的 free 命令,会输出: total 总量 used  已使用 free 空闲 shared 共享内存 buffers cached 前面四项都比较好理解,一看我也就知道啥意思了.但 ...

  9. ajax返回304,jquery $ajax GET请求在IE浏览器兼容中遇到的304 cache请求的经验分享

    在最代码上线后,印象最深的2个bug: 1.用户提醒数字明明已经查看了但是一直还在提示. 2.用户下载代码已经登录了但是一直提示尚未登录. 经过和牛牛们远程协助发现是因为在IE内核的浏览器下,http ...

  10. Chrome中的from memory cache与from disk cache

    文章目录 前言 一.浏览器Network的Size列 二.三级缓存原理 三.HTTP状态码及区别 四.不同浏览器资源加载策略 前言 在Chrome开发者工具页面中,有Network一栏,如下图所示: ...

最新文章

  1. 计算机 配置不过4000,台式机4000元以上免谈,非主流配置免谈
  2. 不喜欢冷漠,喜欢笑容、热情和拥抱
  3. mysql中in的用法总结_MySQL中的find_in_set()函数使用技巧心得与应用场景总结
  4. 开发日记 20210316
  5. LiveQing视频流媒体开放平台利用 webpack 打包压缩后端代码
  6. 博客搬家到 http://fresky.github.io/ - Visual Studio的插件Pdbproj可以把pdb转换成C++项目...
  7. GB-T 16260.1-2006 软件工程 产品质量
  8. JSP-02动态网页技术基础
  9. 泛函分析笔记08:有界线性算子和泛函介绍与共鸣定理
  10. css 如何让盒子垂直居中,css 盒子垂直居中
  11. 5000头奶牛的数字化之旅
  12. 一篇文章搞懂数据仓库:四种常见数据模型(维度模型、范式模型等)
  13. 软件体系结构描述语言与建模实验描述c2软件体系结构风格,软件体系结构描述语言.pdf...
  14. 前端使用 CryptoJS(v3.1.2) 进行des解密,后端java
  15. html中css如何设置显示国旗,CSS3 各国国旗
  16. 2023年湖北一级(高级)技师二级技师报名时间、考试时间是什么时候?
  17. PHP 抓取接口和网页(爬取方式)
  18. RabbitMQ之消息的自动应答、手动应答和消息持久化(Java开发)
  19. 电脑分辨率高,PS界面显示太小怎么办?解决办法
  20. Unity3D教程宝典之Web服务器篇

热门文章

  1. android 手机邮件发不出去,Android中小弟我为什么发不了邮件-Android邮件发送详解...
  2. JavaScript之流程控制
  3. Hibernate的双向N-N关联(六)
  4. 【渝粤题库】广东开放大学 秘书理论与实务(1) 形成性考核
  5. QA面试题:之一(中英文题目、难度:简单)
  6. Master-Worker设计模式介绍
  7. DoraHacks的笔记
  8. Nodejs中Mongodb的基本使用
  9. 转:VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
  10. POST 方式上传图片