using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Caching;
namespace System.CRM.Common
{
/// <summary>
/// 缓存操作助手类
/// </summary>
public class CacheHelper
{
/// <summary>
/// 获取数据缓存
/// </summary>
/// <param name="key">Cache的Key值</param>
public static object GetCache(string key)
{
return HttpRuntime.Cache.Get(key);
}
/// <summary>
/// 设置数据缓存
/// </summary>
/// <param name="key">Cache的Key值</param>
/// <param name="value">Cache的Value值</param>
public static void SetCache(string key, object value)
{
HttpRuntime.Cache.Insert(key, value);
}
/// <summary>
/// 设置数据缓存
/// </summary>
/// <param name="key">Cache的Key值</param>
/// <param name="value">Cache的Value值</param>
/// <param name="timeout">最后一次访问Cache超过该时间间隔,则该Cache会被移除</param>
public static void SetCache(string key, object value, TimeSpan timeout)
{
Cache objCache = HttpRuntime.Cache;
objCache.Insert(key, value, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);
}
/// <summary>
/// 设置数据缓存
/// </summary>
/// <param name="key">Cache的Key值</param>
/// <param name="value">Cache的Value值</param>
/// <param name="absolute">超时时间(单位:天)</param>
/// <param name="timeout">最后一次访问Cache超过该时间间隔,则该Cache会被移除</param>
public static void SetCache(string key, object value, double absolute, TimeSpan timeout)
{
Cache objCache = HttpRuntime.Cache;
objCache.Insert(key, value, null, DateTime.UtcNow.AddDays(absolute), timeout);
}
/// <summary>
/// 移除指定数据缓存
/// </summary>
/// <param name="key">Cache的Key值</param>
public static void RemoveCache(string key)
{
HttpRuntime.Cache.Remove(key);
}
/// <summary>
/// 移除全部缓存
/// </summary>
public static void RemoveAllCache()
{
Cache cache = HttpRuntime.Cache;
IDictionaryEnumerator ide = cache.GetEnumerator();
while (ide.MoveNext())
{
cache.Remove(ide.Key.ToString());
}
}
}
}