using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Caching;
namespace ClusterService.Common
{
public static class CacheHelper
{
public static object Cache(string key)
{
return HttpRuntime.Cache[key];
}
public static void Cache(string key, object value)
{
HttpRuntime.Cache.Insert(key, value);
}
public static void Cache(string key, object value, DateTime utcDate)
{
HttpRuntime.Cache.Insert(key, value, null, utcDate, System.Web.Caching.Cache.NoSlidingExpiration);
}
public static void Cache(string key, object value, TimeSpan span)
{
HttpRuntime.Cache.Insert(key, value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, span);
}
public static void Cache(string key, object value, DateTime utcDate, CacheItemPriority priority, CacheItemRemovedCallback callback)
{
HttpRuntime.Cache.Insert(key, value, null, utcDate, System.Web.Caching.Cache.NoSlidingExpiration, priority, callback);
}
public static void Cache(string key, object value, TimeSpan span, CacheItemPriority priority, CacheItemRemovedCallback callback)
{
HttpRuntime.Cache.Insert(key, value, null, System.Web.Caching.Cache.NoAbsoluteExpiration, span, priority, callback);
}
public static void Expire(string key)
{
var cache = HttpRuntime.Cache;
if (cache[key] != null)
{
cache.Remove(key);
}
}
[Obsolete("谨慎使用")]
public static void ExpireStartsWith(string key)
{
var cache = HttpRuntime.Cache;
var tor = cache.GetEnumerator();
while (tor.MoveNext())
{
string itemKey = tor.Key.ToString();
if (itemKey.StartsWith(key))
{
cache.Remove(itemKey);
}
}
}
}
}