今天我们来分享一个缓存的用法。非关系型数据库还有很多。。。。。
/// <summary>
/// 缓存接口
/// </summary>
public interface ICache
{
void AddCache<T>(string cacheKey, T value);
void AddCache<T>(string cacheKey, T value, DateTime expireTime);
void RemoveCache(string cacheKey);
void RemoveAllCache();
T GetCache<T>(string cacheKey);
}
做一个接口用于兼容不同的缓存平台。
public class MemoryCacheImp : ICache
{
public void AddCache<T>(string cacheKey, T value)
{
var cache = MemoryCache.Default;
//默认10分钟过期
cache.Set(cacheKey, value, DateTimeOffset.Now.AddMinutes(10));
}
public void AddCache<T>(string cacheKey, T value, DateTime expireTime)
{
var cache = MemoryCache.Default;
var policy = new CacheItemPolicy
{
AbsoluteExpiration = expireTime
};
cache.Set(cacheKey, value, policy);
}
public T GetCache<T>(string cacheKey)
{
var cache = MemoryCache.Default;
if (cache.Get(cacheKey) != null)
{
return (T)cache.Get(cacheKey);
}
else
{
return default(T);
}
}
public void RemoveAllCache()
{
}
public void RemoveCache(string cacheKey)
{
MemoryCache.Default.Remove(cacheKey);
}
}
代码很简单,但是在高级优化中是很重要的。
我们看到差距马上就出来了!