前言

缓存是提升程序性能必不可少的方法,Asp.net core 支持多级缓存配置,主要有客户端缓存、服务器端缓存,内存缓存和分布式缓存等。其中客户端缓和服务器端缓存在使用上都有比较大的限制,而内存缓和分布式缓存则比较灵活。

内存缓存就是一种把缓存数据放到应用程序内存中的机制。

本篇主要讲解在 asp.net core webapi 项目中如何使用内存缓存。

使用步骤

  1. 打开 Program.cs 文件

  2. 在语句 var app = builder.Build(); 之前注册内存缓存服务

    var builder = WebApplication.CreateBuilder(args);
    ......
    builder.Services.AddMemoryCache();
    ......
    var app = builder.Build();
  3. 打开控制器文件,如 Test1Controller.cs

  4. 引入内存缓存命名空间

    using Microsoft.Extensions.Caching.Memory;
  5. 在构造方法注入内存缓存服务,如:

    private readonly ILogger<Test1Controller> logger;
    private readonly IMemoryCache memCache; public Test1Controller(
    ILogger<Test1Controller> logger,
    IMemoryCache memCache)
    {
    this.logger = logger;
    this.memCache = memCache;
    }
  6. 通过内存缓存的 GetOrCreateAsync 方法获取和缓存数据,如:

    [HttpGet]
    public async Task<string> GetBooks()
    {
    logger.LogInformation("开始执行GetBooks");
    var items = await memCache.GetOrCreateAsync("AllBooks", async (e) => {
    logger.LogInformation("读取数据");
    return "My Memory Cache"; //这里可以改为从数据库中读取数据
    });
    logger.LogInformation("把数据返回给调用者");
    return items;
    }

Asp.net core Webapi 项目如何优雅地使用内存缓存的更多相关文章

  1. ASP.NET Core WebApi 项目部署到 IIS 服务器的总结

    Point: - ASP.NET Core WebApi 项目 - 发布到 IIS 服务器 1. 选择 File System 2. 输入要发布到的路径 # 其它默认,直接发布 3. 打开 IIS,添 ...

  2. asp.net core webapi项目配置全局路由

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言 在开发项目的过程中,我新创建了一个controller,发现vs会给我们直接在controller头添加前缀,比如[Ro ...

  3. ASP.NET Core 3.0 WebApi 系列【1】创建ASP.NET Core WebApi 项目

    目录 写在前面 一.运行环境 二.项目搭建 三.测试 API 四.基础知识 五.写在最后 写在前面 C#语言可以创建RESTful服务,被称作WebApi.在这里总结学习使用支持创建.读取.更新.删除 ...

  4. 搭建ASP.NET Core WebApi项目

    步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . 选 ...

  5. ASP.NET Core 2.2 WebApi 系列【一】搭建ASP.NET Core WebApi项目

    一.步骤 从“文件”菜单中选择“新建”>“项目” . 选择“ASP.NET Core Web 应用程序”模板,再单击“下一步” . 将项目命名为 NetCoreWebApi,然后单击“创建” . ...

  6. ASP.Net Core WebApi几种版本控制对比

    版本控制的好处: (1)助于及时推出功能, 而不会破坏现有系统. (2)它还可以帮助为选定的客户提供额外的功能. API 版本控制可以采用不同的方式进行控制,方法如下: (1)在 URL 中追加版本或 ...

  7. Asp.Net Core WebApi (Swagger+EF Core/Code First)

    Swagger简介: Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能. ...

  8. Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行

    1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生 ...

  9. 微服务介绍及Asp.net Core实战项目系列

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 二.目录 0.微服务介绍 1.RESTful API 规范介绍 2.asp.net core介绍及swagger使用 3.asp. ...

  10. 零基础ASP.NET Core WebAPI团队协作开发

    零基础ASP.NET Core WebAPI团队协作开发 相信大家对“前后端分离”和“微服务”这两个词应该是耳熟能详了.网上也有很多介绍这方面的文章,写的都很好.我这里提这个是因为接下来我要分享的内容 ...

随机推荐

  1. 关于前后端交互,取header的尴尬

    背景: 最近在写一个接口的时候,需求是这样的,上传excel,匹配项目有多少个字段匹配上了,如果匹配上了在单元格上标注绿色背景,然后返回excel文件和匹配的详细. 首先这个excel文件,后端是不会 ...

  2. Docker部署cas

    一.首先安装cas镜像 1.拉取cas docker镜像 docker pull apereo/cas 2.启动容器: docker run  --name cas -p 8443:8443 -p 8 ...

  3. 初露头角!Walrus入选服贸会“数智影响力”数字化转型创新案例

    9月5日,由北京市通信管理局.工业和信息化部新闻宣传中心联合主办的"企业数字化转型论坛"在2023中国国际服务贸易交易会期间召开,论坛以"数字化引领 高质量发展" ...

  4. 【matplotlib基础】--样式表

    Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方. 不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,通过使用不同的 ...

  5. Redis——Redis面试题

    文章目录 概述 什么是Redis Redis有哪些优缺点 为什么要用 Redis /为什么要用缓存 为什么要用 Redis 而不用 map/guava 做缓存? Redis为什么这么快 数据类型 Re ...

  6. We Need More Bosses 题解

    We Need More Bosses 题目大意 给定一张图,找到两个点,使得这两个点之间的所有路径必须经过的边最多. 思路分析 我们先来思考一下如果已知两个点,怎么求两个点之间必须经过的边的数量. ...

  7. 计算机的数值转化与网络的IP地址分类与地址划分

    数值转换 数字系统由来 远古时代是没有数字系统非位置化数字系统: 罗马数字 (I-1.II-2.III-3.IV-4.V-5.VI-6.VII-7.VIII-8.IX-9.X-10) 位置话数字化系统 ...

  8. JAVA类的加载(1) ——类的加载及类加载器介绍

    过程:当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载.连接.初始化三个步骤来对该类进行初始化,有时候称为类加载(类初始化)   类加载 定义:类加载 指的是将类的class文件读入 ...

  9. 在VM虚拟机中安装FTP服务

    自用的话,建议先关掉防火墙 systemctl stop firewalld #关闭防火墙 systemctl disable firewalld.service #设置开机禁用防火墙 systemc ...

  10. 【scipy 基础】--积分和微分方程

    对于手工计算来说,积分计算是非常困难的,对于一些简单的函数,我们可以直接通过已知的积分公式来求解,但在更多的情况下,原函数并没有简单的表达式,因此确定积分的反函数变得非常困难. 另外,相对于微分运算来 ...