测试ASP.NET Core项目调用EasyCaching的基本用法(InMemory)

  EasyCaching属于开源缓存库,支持基本缓存方式及高级缓存用法,提高用户操作缓存的效率。EasyCaching支持的缓存方式包括以下类型,本文学习最基础的InMemory方式的基本用法。
  EasyCaching.InMemory包属于基于内存的缓存库,使用的是程序所在计算机的内存,一般也称作本地缓存。

在这里插入图片描述

  新建ASP.NET Core WebApi项目,在Nuget包管理器中搜索并安装EasyCaching.InMemory包:
在这里插入图片描述
  接着需要在Program.cs文件中添加EasyCaching服务,主要是调用EasyCaching.Core程序集中的EasyCachingServiceCollectionExtensions.AddEasyCaching函数添加服务,最简单的用法如下所示:

builder.Services.AddEasyCaching(options =>
{
   
    options.UseInMemory("default");
});

  调用UseInMemory函数时,除了实例名称,还可以进行更详细的参数设置,EasyCaching支持在UseInMemory函数中进行设置,也支持在appsettings.json中设置参数后通过UseInMemory函数读取配置,如下图所示,更详细的说明见参考文献3。
在这里插入图片描述
  注册服务后,即可在控制器类中使用,在控制器构造函数中传入IEasyCachingProvider接口,该接口继承自IEasyCachingProviderBase,后者包含常用的缓存操作函数,如下图所示:
在这里插入图片描述
  编写简单的测试控制器类进行测试,代码如下图所示:

public class EasyCachingController : ControllerBase
{
   
    private readonly IEasyCachingProvider _provider;

    public EasyCachingController(IEasyCachingProvider provider)
    {
   
        _provider = provider;
    }

    [HttpGet]
    public string GetValue(string key)
    {
   
        if(!_provider.Exists(key))
        {
   
            throw new Exception($"不存在key{
     key}");
        }
       return _provider.Get<string>(key).Value;
    }

    [HttpPost]
    public void SaveData(string key,string value)
    {
   
        _provider.Set<string>(key, value, new TimeSpan(0, 0, 30));
    }
}

  直接在浏览器中测试WebApi接口,如下图所示,测试SaveData函数:
在这里插入图片描述
  点击Execute按钮后报如下错误,应该是跨域访问的问题,本文中直接按《ASP.NET Core WebAPI从HTTPS调整为HTTP启动》中的方式删除了https相关内容后,即可正常调用函数。
在这里插入图片描述
  接着调用GetValue函数获取值,如下图所示,可以正常返回指定key的值。
在这里插入图片描述

参考文献:
[1]https://github.com/dotnetcore/EasyCaching
[2]https://easycaching.readthedocs.io/en/latest/
[3]https://easycaching.readthedocs.io/en/latest/In-Memory/

相关推荐

  1. 测试调用别人服务,单元测试写法

    2024-01-30 05:08:01       60 阅读
  2. springboot项目之间feign调用

    2024-01-30 05:08:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 05:08:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 05:08:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 05:08:01       82 阅读
  4. Python语言-面向对象

    2024-01-30 05:08:01       91 阅读

热门阅读

  1. MyBaties-增删查改

    2024-01-30 05:08:01       59 阅读
  2. Tik Tok帳戶註冊中海外動態IP的作用

    2024-01-30 05:08:01       42 阅读
  3. SpringBoot 实现定时任务

    2024-01-30 05:08:01       59 阅读
  4. mysql学习打卡day19

    2024-01-30 05:08:01       57 阅读
  5. 深入了解 LCC:智能驾驶的关键技术

    2024-01-30 05:08:01       53 阅读
  6. 深入理解vue相关的底层原理

    2024-01-30 05:08:01       46 阅读
  7. Qt程序设计-半透明遮罩效果窗口实现

    2024-01-30 05:08:01       56 阅读