ASP .NET Core MemoryCache缓存

Posted 雨水的命运

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP .NET Core MemoryCache缓存相关的知识,希望对你有一定的参考价值。

Redis缓存请看这篇博客

安装Nuget包

Microsoft.Extensions.Caching.Memory

添加缓存服务

services.AddMemoryCache();

使用缓存

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;

namespace WebApplication2.Controllers;

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase


    private readonly IMemoryCache _memoryCache;

    public WeatherForecastController(IMemoryCache memoryCache)
    
        _memoryCache = memoryCache;
    

    [HttpGet]
    public async Task Get()
    
        string cacheKey = "cachekey";
        string cacheValue = "1";

        //添加缓存
        _memoryCache.Set(cacheKey, cacheValue, new MemoryCacheEntryOptions().SetAbsoluteExpiration(DateTimeOffset.Now.AddHours(1)));

        if (_memoryCache.TryGetValue(cacheKey, out string cacheValue2))
            _memoryCache.Set(cacheKey, cacheValue, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(1)));

        //获取值
        _memoryCache.Get(cacheKey).ToString();
        _memoryCache.Get<string>(cacheKey);
        bool isExist = _memoryCache.TryGetValue(cacheKey, out string cacheValue3);

        //获取或创建
        var c = _memoryCache.GetOrCreate("cache1", entry =&gt;
         
             entry.AbsoluteExpiration = DateTimeOffset.Now.AddHours(1);
             //entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(1);
             return "1";
         );
    

ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别

ASP.NET Core可以使用.NET Core和.NET Framework运行时,但运行在.NET Core与.NET Framework下ASP.NET Core 有哪些区别呢。本文就主要介绍一下它们之前的区别。

原文地址:ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别

以上是关于ASP .NET Core MemoryCache缓存的主要内容,如果未能解决你的问题,请参考以下文章

Cookie 身份验证 ASP.NET Core

MemoryCache.Default 在 .NET Core 中不可用?

在 asp.net 核心的嵌套函数中使用 MemoryCache

.Net Core缓存组件(MemoryCache)缓存篇

ASP.NET MVC 和 MemoryCache - 我如何使用它?

.Net Core MemoryCache PostEvictionCallback 无法正常工作