namespace WIDESEA_Cache;
|
|
/// <summary>
|
/// <inheritdoc cref="ISimpleCacheService"/>
|
/// 内存缓存
|
/// </summary>
|
public partial class MemoryCacheService : ISimpleCacheService
|
{
|
/// <inheritdoc/>
|
public void HashAdd<T>(string key, string hashKey, T value)
|
{
|
//获取字典
|
var exist = _memoryCache.GetDictionary<T>(key);
|
if (exist.ContainsKey(hashKey))//如果包含Key
|
exist[hashKey] = value;//重新赋值
|
else exist.Add(hashKey, value);//加上新的值
|
_memoryCache.Set(key, exist);
|
}
|
|
//private IDictionary<string,T> GetDictionary(string key,string)
|
|
/// <inheritdoc/>
|
public bool HashSet<T>(string key, Dictionary<string, T> dic)
|
{
|
//获取字典
|
var exist = _memoryCache.GetDictionary<T>(key);
|
dic.ForEach(it =>
|
{
|
if (exist.ContainsKey(it.Key))//如果包含Key
|
exist[it.Key] = it.Value;//重新赋值
|
else exist.Add(it.Key, it.Value);//加上新的值
|
});
|
|
return true;
|
}
|
|
/// <inheritdoc/>
|
public int HashDel<T>(string key, params string[] fields)
|
{
|
int result = 0;
|
//获取字典
|
var exist = _memoryCache.GetDictionary<T>(key);
|
foreach (var field in fields)
|
{
|
if (field != null && exist.ContainsKey(field))//如果包含Key
|
{
|
exist.Remove(field);//删除
|
result++;
|
}
|
}
|
return result;
|
}
|
|
/// <inheritdoc/>
|
public List<T> HashGet<T>(string key, params string[] fields)
|
{
|
List<T> list = new List<T>();
|
//获取字典
|
var exist = _memoryCache.GetDictionary<T>(key);
|
foreach (var field in fields)
|
{
|
if (exist.ContainsKey(field))//如果包含Key
|
{
|
list.Add(exist[field]);
|
}
|
else { list.Add(default); }
|
}
|
return list;
|
}
|
|
/// <inheritdoc/>
|
public T HashGetOne<T>(string key, string field)
|
{
|
//获取字典
|
var exist = _memoryCache.GetDictionary<T>(key);
|
|
exist.TryGetValue(field, out T result);
|
var data = result.DeepClone();
|
return data;
|
}
|
|
/// <inheritdoc/>
|
public IDictionary<string, T> HashGetAll<T>(string key)
|
{
|
var data = _memoryCache.GetDictionary<T>(key);
|
return data;
|
}
|
}
|