当前位置:首页 > Web开发 > 正文

int cacheMin = 30 ) 76 { 77 bool ReturnBool = true ; 78 if

2024-03-31 Web开发

 前提:在框架设计中,因为权限菜单访谒对照频繁,相对不变,且数据体积较小,通过缓存来提升性能,提升获取数据的效率。

 

1.ICache封装

缓存接口,实现对缓存增删改查的封装

1 public interface ICache 2 { 3 /// <summary> 4 /// 读取缓存 5 /// </summary> 6 /// <typeparam></typeparam> 7 /// <param></param> 8 /// <returns></returns> 9 T Get<T>(string key); 10 /// <summary> 11 /// 设置缓存 12 /// </summary> 13 /// <param></param> 14 /// <param></param> 15 /// <param></param> 16 void Add<T>(string key, T data, ObsloteType obsloteType = default, int cachetime = 30); 17 /// <summary> 18 /// 是否包罗 19 /// </summary> 20 /// <param></param> 21 /// <returns></returns> 22 bool Contains(string key); 23 /// <summary> 24 /// 断根缓存 25 /// </summary> 26 /// <param></param> 27 bool Remove(string key); 28 /// <summary> 29 /// 更新缓存 30 /// </summary> 31 /// <param></param> 32 /// <returns></returns> 33 bool Upate<T>(string key,T data, ObsloteType obsloteType = default, int cacheMin = 30); 34 35 }

枚举类 ObsloteType

1 /// <summary> 2 /// Cache计谋类型 永久/绝对过期/滑动过期 3 /// </summary> 4 public enum ObsloteType 5 { 6 /// <summary> 7 /// 永久 8 /// </summary> 9 Never, 10 /// <summary> 11 /// 绝对过期 12 /// </summary> 13 Absolutely, 14 /// <summary> 15 /// 滑动过期 如果期间盘问或更新,就再次耽误 16 /// </summary> 17 Relative 18 }

 

2.MemoryCache使用

引用Nuget包  Install-Package Microsoft.Extensions.Caching.Memory

(1)缓存设置

在Startup.cs的ConfigureServices中添加

1 services.AddMemoryCache(options => 2 { 3 //最大缓存空间巨细限制为 1024 4 options.SizeLimit = 1024; 5 //缓存计谋设置为缓存压缩比为 2% 6 options.CompactionPercentage = 0.02d; 7 //每 5 分钟进行一次过期缓存的扫描 8 options.ExpirationScanFrequency = TimeSpan.FromMinutes(5); 9 });

(2)注入并使用

1 private readonly IMemoryCache _memoryCache; 2 public HomeController(IMemoryCache memoryCache) 3 { 4 _memoryCache = memoryCache; 5 }

缓存的操纵增删改查

(2-1)Set

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30308.html