缓存接口类:
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()); } } } }