【原】獨立小應用程序性能優化簡化版,減少數據庫訪問次數,提高應用程序處理效率,緩存之 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秒過期,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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM