一、HttpRuntime.Cache緩存
二、.絕對過時時間和相對過時時間 spa
/// <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; } }
注意事項:code
absoluteExpiration
類型:System.DateTime
所添加對象將過時並被從緩存中移除的時間。若是使用相對過時,則 absoluteExpiration 參數必須爲 NoAbsoluteExpiration。
slidingExpiration
類型:System.TimeSpan
最後一次訪問所添加對象時與該對象過時時之間的時間間隔。若是該值等效於 20 分鐘,則對象在最後一次被訪問 20 分鐘以後將過時並從緩存中移除。若是使用絕對過時,則 slidingExpiration 參數必須爲 NoSlidingExpiration。對象