zoukankan      html  css  js  c++  java
  • C# Cache何时使用及使用方法

    Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近 期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
      1.Cache 是怎么样工作的?
      Cache 是分配在服务器上的一个公共的内存片。
      所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一 段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是 cache越多越好。  
      cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。
      cache 可以存放任何对象
      
      2.Cache 怎么样创建以及怎么样销毁  
      创建cache  
      在DotNet环境下通过Cache.Insert(string key,object o)方法创建。
          其中key 代表cache的ID,o代表存到cache里的对象。
      
      销毁cache 
      通过方法Cache.Remove(string key)
          其中key 代表cache的 ID.
      
      调用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];

  • 相关阅读:
    maven 错误:读取 xxx.jar 时出错;invalid LOC header (bad signature) 1 错误
    设计模式总结篇系列:建造者模式(Builder)
    java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to
    Rxlifecycle使用详解,解决RxJava内存泄露问题
    详细解析RxAndroid的使用方式
    Android开源项目:GifView——Android显示GIF动画
    Rxjava2的学习与总结
    Pycharm连接gitlab
    Pycharm+Django+Python+MySQL开发 后台管理数据库
    Django-Model操作数据库(增删改查、连表结构)
  • 原文地址:https://www.cnblogs.com/zk-zhou/p/7048406.html
Copyright © 2011-2022 走看看