内存缓存中的.NET Core 1.1 web api

时间:2018-01-19 21:19:12

标签: caching .net-core asp.net-core-webapi

我需要使用.net core web api中的内存缓存选项缓存一些信息。需要在启动时从数据库中获取一些信息并将其缓存24小时。 API中的所有控制器都应该从此缓存中读取数据。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

首先在配置中添加MemoryCache:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddMemoryCache();
}

然后使用程序集Microsoft.Extensions.Caching.Memory提供的IMemoryCache

public interface IMemoryCache : IDisposable
{
    bool TryGetValue(object key, out object value);
    ICacheEntry CreateEntry(object key);
    void Remove(object key);
}

然后在类中的任何位置注入IMemoryCache

public YourClassConstructor(IMemoryCache cache)
{
   this.cache = cache;
}

您可以像这样设置缓存(例如在BLL中):

cache.Set(“Key”, DataToCache);

在您的控制器中,您可以像这样读取缓存:

[HttpGet()]
public string Get()
{
   return cache.Get<TypeOfYourCachedData>(CacheKey);
}