缓存机制的重要目标是进步应用法度榜样的机能。作为 ASP.NET 开辟人员,你可能会心识到 ASP.NET Web 窗体以及 ASP.NET MVC 可以应用 Cache 对象缓存应用法度榜样的数据。这平日被称为办事器端数据缓存,并且常作为框架的内置功能。固然 ASP.NET Core 中并没有如许的 Cache 对象,然则你可以很轻易地实现内存缓存。本文将向你解释若何实现。
然后按照下面提到的步调一一构建和测试由内存缓存供给的各类功能。
1. 内存缓存须要在启动类 Startup 中启用一下
为了能在一个缓存项膳绫擎设置这两种过时策略,你要用到 MemoryCacheEntryOptions 对象。如下代码向你展示了若何去应用。
不合于 ASP.NET Web 窗体和 ASP.NET MVC,ASP.NET Core 没有内置的 Cache 对象,可以拿来在控制器琅绫擎直接应用。 这里,内存缓存时经由过程依附注仁攀来启用的,是以第一步就是在 Startup 类中注册内存缓存的办事。如斯,就得打开 Startup 类然后定位到 ConfigureServices() 办法,像下面如许修改 ConfigureServices() 办法:
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddMvc();
- services.AddMemoryCache();
- }
为了向你的应用法度榜样参加内存缓存才能,你须要在办事集合上调用 AddMemoryCache() 办法。采取这种办法就可以让一个内存缓存(它是一个 IMemoryCache 对象)的默认实现可以被注入到控制器中去。
然后打开 HomeController 并对其进行修改,如下所示:
- public class HomeController : Controller
- {
- private IMemoryCache cache;
- public HomeController(IMemoryCache cache)
- {
- this.cache = cache;
- }
- ....
- }
如你所见,上述代码声清楚明了一个 ImemoryCache 的私有变量。该变量会被构造器中被赋值。构造器会经由过程 DI(依附注入)接收到缓存参数,然后被存储在本地变量总,供给后续应用。
3. 你可以应用 Set() 办法来在缓存中存器械
上述代码在 Index() 这个 action 中设置了一个缓存项。这是经由过程应用 IMemoryCache 的 Set<T>() 来完成的。Set() 办法的第一个参数是键名,用来标识该数据项。第二个参数是键的取值。在词攀例中,我们存储一个字符串的键和一个字符串的值,而你也可以存储其它类型 (原生以及自定义的类型) 的键值对。
等你有了这个 IMemoryCache 对象,就可以攫取或者向它写入数据了。向缓存写入数据项是相当直接的。
- public IActionResult Index()
- {
- cache.Set<string>("timestamp", DateTime.Now.ToString());
- return View();
- }
4. 你可以应用 Get 办法来大年夜缓存中获取到一个数据项
等你向缓存中添加好了数据,也许会想要在应用法度榜样的其它处所去获取到该数据,可以用 Get() 来做到。如下代码会告诉你若何来做这件工作。