内存缓存表示存储在web服务器内存上的缓存,内存缓存的优点是各种缓存效率最高的,并且使用方便。本文介绍内存缓存的使用方法,供大家参考。
一、项目和环境准备
新建一个.NET6MVC项目,然后用nuget添加包缓存包,也可以用nuget程序包管理控制台中命令添加,如下。.
install-package Microsoft.Extensions.Caching.Memory二、依赖注入
在mvc项目中AddControllersWithViews()已经包含注入,这里就不单独,只需要在控制器中使用时用构造函数注入。如下:
private IMemoryCache _cache;public HomeController(IMemoryCache memoryCache){_cache = memoryCache.Cache;}
以上就添加完成,我们就可以使用了
三、使用缓存
我们分别建三个方法,获取缓存,设置缓存,删除缓存。如下:
//获取缓存public IActionResult CacheGet(){var cacheEntry = _cache.Get<DateTime?>("keyname");return View("Cache", cacheEntry);}//设置缓存。这里我们拿时间来做缓存public IActionResult CacheTryGetValueSet(){if (!_cache.TryGetValue("keyname", out DateTime cacheEntry)){cacheEntry = DateTime.Now;var cacheEntryOptions = new MemoryCacheEntryOptions()// 滑动过期时间:在3秒内使用还会延续3秒,如果3秒不适用的话过期.SetSlidingExpiration(TimeSpan.FromSeconds(3));_cache.Set("keyname", cacheEntry, cacheEntryOptions);}return View("Cache", cacheEntry);}//删除缓存public IActionResult CacheRemove(){_cache.Remove("keyname");return RedirectToAction("CacheGet");}
这样三个方法建完了,我们可以点击流量看看效果,这里就不粘贴效果图片了。
大家可以把这个获取,创建,删除封装成类,然后调用这个类就可以了。另外使用 SetSize、Size 和 SizeLimit 限制缓存大小,不过这需要重新字对应定义类来设置。
另外需要由开发人员限制缓存大小。指定的大小采用开发人员选择的单位。