SqlSugarCache.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // 大名科技(天津)有限公司 版权所有
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. //
  5. // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
  6. //
  7. // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
  8. namespace Admin.NET.Core;
  9. /// <summary>
  10. /// SqlSugar二级缓存
  11. /// </summary>
  12. public class SqlSugarCache : ICacheService
  13. {
  14. /// <summary>
  15. /// 系统缓存服务
  16. /// </summary>
  17. private static readonly SysCacheService _cache = App.GetService<SysCacheService>();
  18. public void Add<V>(string key, V value)
  19. {
  20. _cache.Set($"{CacheConst.SqlSugar}{key}", value);
  21. }
  22. public void Add<V>(string key, V value, int cacheDurationInSeconds)
  23. {
  24. _cache.Set($"{CacheConst.SqlSugar}{key}", value, TimeSpan.FromSeconds(cacheDurationInSeconds));
  25. }
  26. public bool ContainsKey<V>(string key)
  27. {
  28. return _cache.ExistKey($"{CacheConst.SqlSugar}{key}");
  29. }
  30. public V Get<V>(string key)
  31. {
  32. return _cache.Get<V>($"{CacheConst.SqlSugar}{key}");
  33. }
  34. public IEnumerable<string> GetAllKey<V>()
  35. {
  36. return _cache.GetKeysByPrefixKey(CacheConst.SqlSugar);
  37. }
  38. public V GetOrCreate<V>(string key, Func<V> create, int cacheDurationInSeconds = int.MaxValue)
  39. {
  40. return _cache.GetOrAdd<V>($"{CacheConst.SqlSugar}{key}", (cacheKey) =>
  41. {
  42. return create();
  43. }, cacheDurationInSeconds);
  44. }
  45. public void Remove<V>(string key)
  46. {
  47. _cache.Remove(key); // SqlSugar调用Remove方法时,key中已包含了CacheConst.SqlSugar前缀
  48. }
  49. }