.NET Core支持多种不同的缓存,其中包括MemoryCache,它表示存储在Web服务器内存中的缓存; 

   内存中的缓存存储任何对象; 分布式缓存界面仅限于byte[]

1:在.net core中使用MemoryCache首先要下载MemoryCache包

在程序包管理器控制台输入命令:Install-Package Microsoft.Extensions.Caching.Memory 

     之后可以看到已经下载好了NuGet包“Microsoft.Extensions.Caching.Memory

使用IMemoryCache:内存中缓存是使用依赖注入从应用程序引用的服务,在Startup.cs中

 public void ConfigureServices(IServiceCollection services)
{
//使用依赖注入从应用程序引用服务
services.AddMemoryCache();
services.AddMvc();
}

IMemoryCache在构造函数中请求实例:

 //IMemoryCache在构造函数中请求实例
private IMemoryCache _cache;
// private object CacheKeys; public HomeController(IMemoryCache memoryCache)
{
_cache = memoryCache;
} public IActionResult Index()
{
DateTime cacheEntry;
string CacheKeys = "key";
// 使用TryGetValue来检测时间是否在缓存中
if (!_cache.TryGetValue(CacheKeys, out cacheEntry))
{
//时间未被缓存,添加一个新条目
cacheEntry = DateTime.Now; // 使用Set将其添加到缓存中
var cacheEntryOptions = new MemoryCacheEntryOptions()
// 在此期间保持高速缓存,如果被访问,则重新设置时间
.SetSlidingExpiration(TimeSpan.FromSeconds()); _cache.Set(cacheEntry, cacheEntry, cacheEntryOptions);
} return View("Index", cacheEntry);
}

显示当前时间:缓存的DateTime值保留在高速缓存中,同时在超时期限内有请求(并且不因内存压力而驱逐)

@model DateTime?

<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="~/lib/font-awesome/css/font-awesome.css"> <div>
<h2>Actions</h2>
<ul>
<li><a asp-controller="Home" asp-action="CacheTryGetValueSet">TryGetValue and Set</a></li>
</ul>
</div> <h3>Current Time: @DateTime.Now.TimeOfDay.ToString()</h3>
<h3>Cached Time: @(Model == null ? "No cached entry found" : Model.Value.TimeOfDay.ToString())</h3>

缓存的DateTime值保留在高速缓存中,同时在超时期限内有请求(并且不因内存压力而驱逐)。下图显示了从缓存中检索的当前时间和较早的时间:

.net Core学习笔记之MemoryCache的更多相关文章

  1. .NET CORE学习笔记系列(2)——依赖注入[7]: .NET Core DI框架[服务注册]

    原文https://www.cnblogs.com/artech/p/net-core-di-07.html 包含服务注册信息的IServiceCollection对象最终被用来创建作为DI容器的IS ...

  2. .NET CORE学习笔记系列(2)——依赖注入[6]: .NET Core DI框架[编程体验]

    原文https://www.cnblogs.com/artech/p/net-core-di-06.html 毫不夸张地说,整个ASP.NET Core框架是建立在一个依赖注入框架之上的,它在应用启动 ...

  3. .NET CORE学习笔记系列(2)——依赖注入[5]: 创建一个简易版的DI框架[下篇]

    为了让读者朋友们能够对.NET Core DI框架的实现原理具有一个深刻而认识,我们采用与之类似的设计构架了一个名为Cat的DI框架.在上篇中我们介绍了Cat的基本编程模式,接下来我们就来聊聊Cat的 ...

  4. .NET CORE学习笔记系列(2)——依赖注入[4]: 创建一个简易版的DI框架[上篇]

    原文https://www.cnblogs.com/artech/p/net-core-di-04.html 本系列文章旨在剖析.NET Core的依赖注入框架的实现原理,到目前为止我们通过三篇文章从 ...

  5. .NET CORE学习笔记系列(2)——依赖注入【3】依赖注入模式

    原文:https://www.cnblogs.com/artech/p/net-core-di-03.html IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架中以实现对流 ...

  6. .NET CORE学习笔记系列(2)——依赖注入【2】基于IoC的设计模式

    原文:https://www.cnblogs.com/artech/p/net-core-di-02.html 正如我们在<控制反转>提到过的,很多人将IoC理解为一种“面向对象的设计模式 ...

  7. .NET CORE学习笔记系列(2)——依赖注入【1】控制反转IOC

    原文:https://www.cnblogs.com/artech/p/net-core-di-01.html 一.流程控制的反转 IoC的全名Inverse of Control,翻译成中文就是“控 ...

  8. .NET Core学习笔记(7)——Exception最佳实践

    1.为什么不要给每个方法都写try catch 为每个方法都编写try catch是错误的做法,理由如下: a.重复嵌套的try catch是无用的,多余的. 这一点非常容易理解,下面的示例代码中,O ...

  9. .net core学习笔记,组件篇:服务的注册与发现(Consul)初篇

    1.什么是服务注册中心? 在学习服务注册与发现时,我们要先搞明白到底什么是服务注册与发现. 在这里我举一个生活中非常普遍的例子——网购来简单说明,网购在我们日常生活中已经是非常普遍了,其实网购中的(商 ...

随机推荐

  1. DropDownList切换选择,服务器控件Repeater未更新

    将EnableViewState属性设置为false,这样禁止服务器控件使用视图状态,也就是禁止发送给浏览器HEML中的缓存副本, 每次都会使用新数据. 一旦页面的控件很多,频繁的传递控件状态值对网络 ...

  2. vs2017 xamarin新建单独UWP类库提示不兼容

    One or more projects are incompatible with UAP,Version=v10.0 (win10-arm). One or more projects are i ...

  3. CSS2.1SPEC:视觉格式化模型之包含块

    原汁原味的才是最有味道的,在阅读CSS标准时对这一点的体会更加深刻了,阅读文档后的一大感觉就是很多看上去理所应当的样式表现也都有了对应的支持机制.本文首先从包含块写起,一方面总结标准中相应的阐述,并且 ...

  4. python小数的进位与舍去

    一.基础知识准备 ​ 奇进偶舍,又称为四舍六入五成双规则.银行进位法(Banker's Rounding),是一种计数保留法,是一种数值修约规则.从统计学的角度,"奇进偶舍"比&q ...

  5. 实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符 如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少)。并且比其他只出现一次的字符(如"d")首次出现的位置最靠前。

    实现一个算法,寻找字符串中出现次数最少的.并且首次出现位置最前的字符如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少).并且比其 ...

  6. 00-python概述。

    人生苦短,我用Python. -发展历史: - 1989年,由Guido van Rossum开始开发, - 1991年,发布第一个公开发行版,第一个Python编译器(同时也是解释器)诞生. - 2 ...

  7. 非常好用的@ResponseBody注解

    AJAX的写法: ajax接收json格式: ①如果ajax接收的是text dataType:"text", var json = eval("(" + da ...

  8. js插件实现点击复制内容到粘贴板,兼容IE8

    先来看下本次需要导入的文件: 第一个是jquery.js,这个不多说: 第二个是jquery.zclip.js,第三个是zeroClipboard.swf ,这两个文件的下载链接:http://www ...

  9. CSS中的BFC详解

    引言: 这篇文章是我对BFC的理解及总结,带你揭开BFC的面纱.你将会知道BFC是什么,形成BFC的条件,BFC的相关特性,以及他的实际应用. 一.何为BFC BFC(Block Formatting ...

  10. js创建对象方法

    1.对象字面量 let xys={ name:'xys', age:22, height:177 } console.log(xys.age)  //22   2.使用new操作符和构造函数    1 ...