ASP.NET Core 支持多种不同的缓存。 最简单的缓存基于 IMemoryCache,它表示存储在 Web 服务器内存中的缓存。 在包含多个服务器的服务器场上运行的应用应确保在使用内存中缓存时,会话是粘性的。 粘性会话可确保来自客户端的后续请求都转到同一台服务器。 例如,Azure Web 应用使用应用程序请求路由(ARR) 将所有的后续请求路由到同一台服务器。
内存中缓存可以存储任何对象;分布式缓存接口仅限于byte[]。
需要 NuGet 包 Microsoft.Extensions.Caching.Memory
Startup.cs中ConfigureServices中调用AddMemoryCache:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMemoryCache();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
}
在HomeController里引用缓存
public class HomeController : Controller
{
private IMemoryCache _cache;public HomeController(IMemoryCache memoryCache)
{
_cache = memoryCache;
}
缓存使用:
public IActionResult CacheTryGetValueSet()
{
string cacheEntry;
if (!_cache.TryGetValue(CacheKeys.Entry, out cacheEntry))
{
cacheEntry = "测试";
//过期时间
var cacheEntryOptions = new MemoryCacheEntryOptions()
.SetSlidingExpiration(TimeSpan.FromSeconds(3));
_cache.Set(CacheKeys.Entry, cacheEntry, cacheEntryOptions);
}
return View("Cache", cacheEntry);
}
这篇文档对您是否有帮助?