程序开发 > C# > 正文

创建.NET缓存cache的两种方法

亮术网 2020-09-01 本网原创

在程序开发过程中,适当使用 Cache 缓存能有效提高程序执行效率。比如一些常常调用的系统公共变量,把它们缓存到 Cache 中,当需要使用它们时,直接从 Cache 中读取,不必每次都从数据库或文件中读取,从而减小服务器压力、提高程序效率。

通常创建 Cache 缓存的方法有两种,分别是 Add() 和 Insert(),下面看看他们如何使用及有何异同。

 

1、Add() 方法

该方法是新创建一个 Cache 对象,如果准备创建的对象已经存在,则抛出一个异常,创建失败,实例如下:

/// <summary>
  /// 用 Add() 创建一个 Cache 对象
  /// </summary>

  public void NewCacheAsAdd()
  {
    string strSysConfig = "网站配置信息";
    if (Cache["sysConfig"] == null)
      Cache.Add("sysConfig", strSysConfig, null, DateTime.Now.AddMinute(30), TimeSpan.Zero, CacheItemPriority.High, null);
  }

上述方法,新建了一个 Key 为 sysConfig,值为 strSysConfig 的 Cache 对象;采用绝对过期时间(即 DateTime.Now.AddMinute(30)),表示缓存 30 分钟后强行过期;缓存级别是高(即 CacheItemPriority.High),表示当内存不足时,它不会被先清除内存。

 

2、Insert() 方法

此方法是新创建或覆盖一个 Cache 对象,如果准备创建的对象不存,则新创建一个对象;如果准备创建的对象已经存在,则覆盖已存在的对象,实例如下:

/// <summary>
  /// 用 Insert() 创建一个 Cache 对象
  /// </summary>

  public void NewCacheAsInsert()
  {
    ProductClass proClass = New ProductClass();
    IList<ProductClassInfo> pci = proClass.GetProductClasses();

  ProductClassCacheDependency pccd = new ProductClassCacheDependency();
    CacheDependency cacheDepend = pccd.GetProductClassDependency();

  Cache.Insert("ProductClass", pci, cacheDepend, Cache.NoAbsoluteExpiration, TimeSpan.FromMinut(30), CacheItemPriority.Normal, null);
  }

上述方法,新建了一个 Key 为 ProductClass,值为 pci 的 Cache 对象;并使缓存依赖数据库(cacheDepend),即如果数据库有更新,则缓存也自动更新;采用相对过期时间(即 TimeSpan.FromMinut(30)),表示缓存超过 30 分钟没有被访问过,则缓存自动清除;缓存级别是普通(即 CacheItemPriority.Normal),表示当内存不足时,它会被先清除内存。

本文浓缩标签:.NET缓存cache