DigitalFactory/Admin.NET/Admin.NET.Core/Cache/SqlSugarCache.cs

54 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 大名科技(天津)有限公司版权所有 电话18020030720 QQ515096995
//
// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
namespace Admin.NET.Core;
/// <summary>
/// SqlSugar二级缓存
/// </summary>
public class SqlSugarCache : ICacheService
{
/// <summary>
/// 系统缓存服务
/// </summary>
private static readonly SysCacheService _cache = App.GetService<SysCacheService>();
public void Add<V>(string key, V value)
{
_cache.Set($"{CacheConst.SqlSugar}{key}", value);
}
public void Add<V>(string key, V value, int cacheDurationInSeconds)
{
_cache.Set($"{CacheConst.SqlSugar}{key}", value, TimeSpan.FromSeconds(cacheDurationInSeconds));
}
public bool ContainsKey<V>(string key)
{
return _cache.ExistKey($"{CacheConst.SqlSugar}{key}");
}
public V Get<V>(string key)
{
return _cache.Get<V>($"{CacheConst.SqlSugar}{key}");
}
public IEnumerable<string> GetAllKey<V>()
{
return _cache.GetKeysByPrefixKey(CacheConst.SqlSugar);
}
public V GetOrCreate<V>(string key, Func<V> create, int cacheDurationInSeconds = int.MaxValue)
{
return _cache.GetOrAdd<V>($"{CacheConst.SqlSugar}{key}", (cacheKey) =>
{
return create();
}, cacheDurationInSeconds);
}
public void Remove<V>(string key)
{
_cache.Remove(key); // SqlSugar调用Remove方法时key中已包含了CacheConst.SqlSugar前缀
}
}