1. 程式人生 > >【原】緩存之 HttpRuntime.Cache

【原】緩存之 HttpRuntime.Cache

1.5 mar set var public sys 設置 pru obj

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秒過期,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)//默認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