如何解决通过Aplication Level Cache提高ASP.NET的性能?
我已经开发了一个dotnet应用程序,它包含许多数据。由于数据量大,应用程序会占用更多带宽并降低速度。有什么方法可以通过应用程序级缓存提高性能。我在使用sql server时研究过redis,但是它的键值。我想要一个解决方案,以便将表从sql服务器加载到Web服务器缓存,这样它就不必一次又一次命中sql了。
解决方法
ASP.NET Core支持几种不同的缓存。最简单的缓存基于IMemoryCache。
要在Asp.net核心中使用内存中缓存,可以使用System.Runtime.Caching / MemoryCache(NuGet package),然后可以使用以下命令在ConfigureServices中注册IMemoryCache:
services.AddMemoryCache();
然后,在控制器中,您可以引用以下代码以使用缓存来存储数据。
public class HomeController : Controller
{
private IMemoryCache _cache;
public HomeController(IMemoryCache memoryCache)
{
_cache = memoryCache;
}
public IActionResult CacheTryGetValueSet()
{
DateTime cacheEntry;
// Look for cache key.
if (!_cache.TryGetValue(CacheKeys.Entry,out cacheEntry))
{
// Key not in cache,so get data.
cacheEntry = DateTime.Now;
// Set cache options.
var cacheEntryOptions = new MemoryCacheEntryOptions()
// Keep in cache for this time,reset time if accessed.
.SetSlidingExpiration(TimeSpan.FromSeconds(3));
// Save data in cache.
_cache.Set(CacheKeys.Entry,cacheEntry,cacheEntryOptions);
}
return View("Cache",cacheEntry);
}
更多详细信息,请检查Cache in-memory in ASP.NET Core
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。