微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Aplication Level Cache提高ASP.NET的性能?

如何解决通过Aplication Level Cache提高ASP.NET的性能?

我已经开发了一个dotnet应用程序,它包含许多数据。由于数据量大,应用程序会占用更多带宽并降低速度。有什么方法可以通过应用程序级缓存提高性能。我在使用sql server时研究过redis,但是它的键值。我想要一个解决方案,以便将表从sql服务器加载到Web服务器缓存,这样它就不必一次又一次命中sql了。

解决方法

ASP.NET Core支持几种不同的缓存。最简单的缓存基于IMemoryCache

要在Asp.net核心中使用内存中缓存,可以使用System.Runtime.Caching / MemoryCacheNuGet 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 举报,一经查实,本站将立刻删除。