缓存接口类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo.Code
{
public interface ICache
{
T GetCache<T>(string cacheKey) where T : class;//读取缓存
void WriteCache<T>(T value, string cacheKey) where T : class;//更新缓存
void WriteCache<T>(T value, string cacheKey, DateTime expireTime) where T : class;//更新缓存并设置过期时间
void RemoveCache(string cacheKey);//移除指定名称的缓存
void RemoveCache();//移除所有缓存
}
}
接口实现:
using System;
using System.Collections;
using System.Web;
namespace Demo.Code
{
public class Cache : ICache
{
private static System.Web.Caching.Cache cache = HttpRuntime.Cache;
public T GetCache<T>(string cacheKey) where T : class
{
if (cache[cacheKey] != null)
{
return (T)cache[cacheKey];
}
return default(T);
}
public void WriteCache<T>(T value, string cacheKey) where T : class
{
cache.Insert(cacheKey, value, null, DateTime.Now.AddMinutes(10), System.Web.Caching.Cache.NoSlidingExpiration);
}
public void WriteCache<T>(T value, string cacheKey, DateTime expireTime) where T : class
{
cache.Insert(cacheKey, value, null, expireTime, System.Web.Caching.Cache.NoSlidingExpiration);
}
public void RemoveCache(string cacheKey)
{
cache.Remove(cacheKey);
}
public void RemoveCache()
{
IDictionaryEnumerator CacheEnum = cache.GetEnumerator();
while (CacheEnum.MoveNext())
{
cache.Remove(CacheEnum.Key.ToString());
}
}
}
}