本地缓冲封装
这几天在项目中经常用到缓存,干脆就对这个缓存做了一个简单的封装 ,今后直接那俩用就行了;
public class SiteCache
{
#region 方法
private static readonly Cache _cache;
public static readonly int HourFactor;
public static readonly int MinuteFactor;
static SiteCache()
{
HourFactor = 1;//小时
MinuteFactor = 1;//分钟
_cache = HttpRuntime.Cache;
}
/// <summary>
/// 获取缓存
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static object GetCache(string key)
{
return _cache[key];
}
/// <summary>
/// 实践“一键一值”存储方法,最普通的存储方法;
/// </summary>
/// <param name="key">主键(缓存名称)</param>
/// <param name="obj">要插入缓存中的对象</param>
/// <param name="dep"></param>
/// <param name="time">缓存的时间</param>
/// <param name="priority">优先权</param>
public static void InsertDefault(string key, object obj, CacheDependency dep, DateTime time, CacheItemPriority priority)
{
if (obj != null)
{
_cache.Insert(key, obj, dep, time, TimeSpan.Zero, priority, null);
}
}
/// <summary>
/// 实践“一键一值”存储方法,按小时存缓存
/// </summary>
/// <param name="key">主键(缓存名称)</param>
/// <param name="obj">要插入缓存中的对象</param>
/// <param name="hourTime">时间(输入整数)</param>
public static void InsertHour(string key, object obj, int hourTime)
{
InsertDefault(key, obj, null, DateTime.Now.AddHours((double)hourTime), CacheItemPriority.Default);
}
/// <summary>
/// 实践“一键一值”存储方法,按分钟存缓存
/// </summary>
/// <param name="key"></param>
/// <param name="obj"></param>
/// <param name="minuteTime"></param>
public static void InsertMinute(string key, object obj, int minuteTime)
{
InsertDefault(key, obj, null, DateTime.Now.AddMinutes((double)minuteTime), CacheItemPriority.Default);
}
/// <summary>
/// 指定缓存销毁
/// </summary>
/// <param name="key">主键(缓存名称)</param>
public static void Remove(string key)
{
_cache.Remove(key);
}
/// <summary>
/// 销毁所有缓存
/// </summary>
public static void Clear()
{
IDictionaryEnumerator enumerator = _cache.GetEnumerator();
while (enumerator.MoveNext())
{
_cache.Remove(enumerator.Key.ToString());
}
}
/// <summary>
/// 判断存储的"一键一值"值是否还存在(有没有过期失效或从来都未存储过)
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static bool ExistCache(string key)
{
if (_cache[key] != null)
{
return true;
}
else
{
return false;
}
}
#endregion
}