v1.0.3
This commit is contained in:
53
CC.Yi.Common/Cache/CacheHelper.cs
Normal file
53
CC.Yi.Common/Cache/CacheHelper.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using Autofac;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace CC.Yi.Common.Cache
|
||||
{
|
||||
public class CacheHelper
|
||||
{
|
||||
public static ICacheWriter CacheWriter { get; set; }
|
||||
static CacheHelper()
|
||||
{
|
||||
|
||||
//这里存在一些问题
|
||||
ContainerBuilder containerBuilder = new ContainerBuilder();
|
||||
IContainer container = containerBuilder.Build();
|
||||
CacheHelper.CacheWriter = container.Resolve<ICacheWriter>();
|
||||
}
|
||||
|
||||
public static void AddCache(string key, string value, int expDate)
|
||||
{
|
||||
CacheWriter.Add(key, value, expDate);
|
||||
}
|
||||
|
||||
//没有过期参数,表示用不过期
|
||||
public static void AddCache(string key, string value)
|
||||
{
|
||||
CacheWriter.Add(key, value);
|
||||
}
|
||||
|
||||
public static object GetCache(string key)
|
||||
{
|
||||
return CacheWriter.Get(key);
|
||||
}
|
||||
public static void SetCache(string key, string value, int expDate)
|
||||
{
|
||||
|
||||
CacheWriter.Replace(key, value, expDate);
|
||||
}
|
||||
|
||||
//没有过期参数,表示用不过期
|
||||
public static void SetCache(string key, string value)
|
||||
{
|
||||
CacheWriter.Replace(key, value);
|
||||
}
|
||||
|
||||
public static void Remove(string key)
|
||||
{
|
||||
CacheWriter.Remove(key);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
31
CC.Yi.Common/Cache/ICacheWriter.cs
Normal file
31
CC.Yi.Common/Cache/ICacheWriter.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CC.Yi.Common.Cache
|
||||
{
|
||||
public interface ICacheWriter
|
||||
{
|
||||
//void AddCache(string key, object value, DateTime expDate);
|
||||
//void AddCache(string key, object value);
|
||||
//object GetCache(string key);
|
||||
//T GetCache<T>(string key);
|
||||
//void SetCache(string key, object value, DateTime expDate);
|
||||
//void SetCache(string key, object value);
|
||||
//bool Delete(string key);
|
||||
|
||||
string Get(string key);
|
||||
|
||||
string GetString(string key);
|
||||
|
||||
void AddString(string key, string value);
|
||||
|
||||
void Add(string key, string value, int ExpirationTime = 20);
|
||||
|
||||
void Remove(string key);
|
||||
|
||||
void Replace(string key, string value, int ExpirationTime = 20);
|
||||
}
|
||||
}
|
||||
96
CC.Yi.Common/Cache/RedisCacheService.cs
Normal file
96
CC.Yi.Common/Cache/RedisCacheService.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using Microsoft.Extensions.Caching.Redis;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace CC.Yi.Common.Cache
|
||||
{
|
||||
public class RedisCacheService :ICacheWriter
|
||||
{
|
||||
private RedisCache _redisCache = null;
|
||||
public RedisCacheService(RedisCacheOptions options)
|
||||
{
|
||||
_redisCache = new RedisCache(options);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取缓存
|
||||
/// </summary>
|
||||
/// <param name="key">缓存key</param>
|
||||
/// <returns></returns>
|
||||
public string Get(string key)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
return Encoding.UTF8.GetString(_redisCache.Get(key));
|
||||
}
|
||||
else
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 添加缓存
|
||||
/// </summary>
|
||||
/// <param name="key">缓存key</param>
|
||||
/// <param name="value">缓存值</param>
|
||||
/// <param name="ExpirationTime">绝对过期时间(分钟)</param>
|
||||
public void Add(string key, string value, int ExpirationTime = 20)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
_redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
|
||||
{
|
||||
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void AddString(string key, string value)
|
||||
{
|
||||
_redisCache.SetString(key, value);
|
||||
}
|
||||
|
||||
public string GetString(string key)
|
||||
|
||||
{
|
||||
return _redisCache.GetString(key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除缓存
|
||||
/// </summary>
|
||||
/// <param name="key">缓存key</param>
|
||||
public void Remove(string key)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
_redisCache.Remove(key);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 更新缓存
|
||||
/// </summary>
|
||||
/// <param name="key">缓存key</param>
|
||||
/// <param name="value">缓存值</param>
|
||||
/// <param name="ExpirationTime"></param>
|
||||
public void Replace(string key, string value, int ExpirationTime = 20)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(key))
|
||||
{
|
||||
_redisCache.Remove(key);
|
||||
_redisCache.Set(key, Encoding.UTF8.GetBytes(value), new DistributedCacheEntryOptions()
|
||||
{
|
||||
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(ExpirationTime)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user