iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET Core中的Caching组件简介
  • 521
分享到

ASP.NET Core中的Caching组件简介

2024-04-02 19:04:59 521人浏览 薄情痞子
摘要

在.net core中提供了Caching的组件。目前Caching组件提供了三种存储方式: MemoryRedissqlSever 1.Memeor Caching 新建一个ASP

.net core中提供了Caching的组件。目前Caching组件提供了三种存储方式:

1.Memeor Caching

新建一个ASP.net core WEB应用程序项目,然后安装 Microsoft.Extensions.Caching.Memory。

修改ConfigureServices方法

services.AddMemoryCache();
services.Addmvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

在HomeController使用:

        private IMemoryCache memoryCache;
        public HomeController( IMemoryCache _memoryCache)
        {
            memoryCache = _memoryCache;
        }

        public IActionResult Index()
        {
            string cacheKey = "key";
            string result;
            if (!memoryCache.TryGetValue(cacheKey, out result))
            {
                result = $"LineZero{DateTime.Now}";
                memoryCache.Set(cacheKey, result);
                //设置相对过期时间
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetSlidingExpiration(TimeSpan.FromSeconds(10)));
                //设置绝对过期时间
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetAbsoluteExpiration(TimeSpan.FromSeconds(10)));
                //删除缓存
                memoryCache.Remove(cacheKey);
                //设置缓存优先级(程序压力大时,会根据优先级自动回收)
                memoryCache.Set(cacheKey,result,new MemoryCacheEntryOptions() 
                    .SetPriority(CacheItemPriority.NeverRemove));
                //过期时缓存回调
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .SetAbsoluteExpiration(TimeSpan.FromSeconds(60))
                    .ReGISterPostEvictionCallback((key, value, reason, substate)
                    =>
                    {
                        nlog.Warn($"键{key}值{value}改变,因为{reason}");
                    }));
                //Token过期时,缓存回调
                var cts = new CancellationTokenSource();
                memoryCache.Set(cacheKey, result, new MemoryCacheEntryOptions()
                    .AddExpirationToken(new CancellationChangeToken(cts.Token))
                    .RegisterPostEvictionCallback((key, value, reason, substate)
                    =>
                    {
                        nlog.Warn($"键{key}值{value}改变,因为{reason}");
                    }));
            }
            ViewBag.Cache = result;
            return View();
        }

2.Distributed Cache Tag Helper

在ASP.Net Core MVC 中有一个 Distributed Cache Tag Helper,它是依赖于MemoryCache组件的。

可以直接在试图上增加 distributed-cache 标签

@{
    ViewData["Title"] = "Home Page";
}
<distributed-cache name="mycache" expires-after="TimeSpan.FromSeconds(10)">
    <p>缓存项10秒过期(expires-after绝对过期时间)</p>
</distributed-cache>
<distributed-cache name="mycachenew" expires-sliding="TimeSpan.FromSeconds(10)">
    <p>相对十秒(expires-sliding相对过期时间)</p>
    @DateTime.Now
</distributed-cache>
<div>@ViewBag.Cache</div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NET Core中的Caching组件简介

本文链接: https://www.lsjlt.com/news/145841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core中的Caching组件简介
    在.NET Core中提供了Caching的组件。目前Caching组件提供了三种存储方式: MemoryRedisSQLSever 1.Memeor Caching 新建一个ASP...
    99+
    2022-11-13
  • ASP.NET Core中的Caching组件怎么用
    本文小编为大家详细介绍“ASP.NET Core中的Caching组件怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core中的Caching组件怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-30
  • ASP.NET Core中的Blazor组件介绍
    目录关于组件组件类静态资产路由与路由参数组件参数请勿创建会写入其自己的组参数属性的组件子内容属性展开任意参数捕获对组件的引用在外部调用组件方法以更新状态使用 @ 键控制是否保留元素和...
    99+
    2022-11-13
  • ASP.NET Core的中间件与管道介绍
    今天来讨论一个ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很...
    99+
    2022-11-12
  • ASP.NET Core中的Razor页面介绍
    目录简介Why?创建Razor页面应用程序ASP.NET Core Razor页面 - 核心功能模型绑定HandlersTag Helpers and HTML Helpers路由总...
    99+
    2022-11-13
  • ASP.NET Core中的Ocelot网关介绍
    目录1.简介2.Ocelot配置2.1基础集成(Basic Implementation)2.2集成IdentityServer(With IdentityServer)2.3多个网...
    99+
    2022-11-13
  • ASP.NET Core MVC中使用Tag Helper组件
    Tag Helper 组件 - 简介 之前我们已经在几个文章中谈到了Tag Helpers,这一次我们会讨论其它有关的事情。 在 ASP.NET Core 2 还为我们带来了一个新功...
    99+
    2022-11-13
  • ASP.NET Core MVC中如何使用Tag Helper组件
    这篇文章主要介绍ASP.NET Core MVC中如何使用Tag Helper组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Tag Helper 组件 - 简介在 ASP.NET C...
    99+
    2023-06-29
  • ASP.NET Core中间件用法与官方常用中间件介绍
    目录一、什么是中间件中间件和过滤器的区别二、中间件常用方法1、Run方法2、Use方法3、Map方法4、Mapwhen方法三、自定义中间件四、官方常用中间件1、异常处理中间件2、HT...
    99+
    2022-11-13
  • ASP.NET Core中的wwwroot文件夹
    ASP.NET Core中wwwroot文件夹 默认情况下,ASP.NET Core应用程序中的wwwroot文件夹被视为webroot文件夹,并且该文件夹或目录应位于根项目文件夹中...
    99+
    2022-11-13
  • ASP.NET Core中的静态文件
    目录1.前言2.设置静态文件目录2.1 设置默认静态文件目录2.2 设置访问Web根目录外的文件3.设置HTTP响应标头4.静态文件授权5.启用目录浏览6.设置静态文件默认文档6.1...
    99+
    2022-11-13
  • ASP.NET中的Razor语法简介
    目录一、Razor 语法1、 Razor C# 语法规则2、Razor的作用域3、Razor和Html混合编写4、变量5、数据类型6、转换数据类型(string类型才能转)7、循环8...
    99+
    2022-11-13
  • ASP.NET Core中间件初始化的实现
    目录前言  自定义的方式 Use方式 基于约定的方式 实现IMiddleware的方式 源码探究 Use扩展方法 UseMiddleware 总结 前言  ...
    99+
    2022-11-12
  • ASP.NET中的Web控件介绍
    目录一、HTML控件二、HTML服务器控件三、Web服务器控件Web服务器控件和html服务器控件的区别四、Web用户控件五、Web自定义控件1、用户控件和自定义控件的异同2、实现自...
    99+
    2022-11-13
  • ASP.NET Core中间件实现限流的代码
    目录一、限流算法1.计数器算法1.1 固定窗口算法1.2 滑动窗口算法2.令牌桶算法3.漏桶算法二、ASP.NET Core中间件实现限流1.中间件代码2.在管道中的使用一、限流算法...
    99+
    2022-11-13
  • ASP.NET Core中间件初始化的实现方法
    小编给大家分享一下ASP.NET Core中间件初始化的实现方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言  在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景,...
    99+
    2023-06-15
  • PostgreSQL中的数组简单介绍
    本篇内容介绍了“PostgreSQL中的数组简单介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!假设你在...
    99+
    2022-10-18
  • ASP.NET Core中间件与管道的概念是什么
    今天小编给大家分享一下ASP.NET Core中间件与管道的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-26
  • JavaScript中数组扁平化的简介
    小编给大家分享一下JavaScript中数组扁平化的简介,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java的特点有哪些Java的特点有哪些1.Java语言作为...
    99+
    2023-06-08
  • .NET 开源配置组件 AgileConfig的使用简介
    目录介绍架构图部署服务端在客户端程序使用总结介绍 在微服务大行其道的今天,系统会被拆分成多个模块,作为单独的服务运行,同时为了集中化管理,我们还需要日志中心,配置中心等,很多开发人...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作