三步实现.NET Core内存缓存的简单使用

内存缓存表示存储在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 限制缓存大小,不过这需要重新字对应定义类来设置。

另外需要由开发人员限制缓存大小。指定的大小采用开发人员选择的单位。

例如:
如果 Web 应用主要缓存字符串,则每个缓存条目的大小可以是字符串长度。
应用可以将所有条目的大小指定为 1,大小限制是条目计数。