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