内存缓存表示存储在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 限制缓存大小,不过这需要重新字对应定义类来设置。
另外需要由开发人员限制缓存大小。指定的大小采用开发人员选择的单位。