ncache .net
尽管ASP.Net Core缺少缓存对象,但它提供了对几种不同类型的缓存的支持,包括内存中缓存,分布式缓存和响应缓存。 NCache是Alachisoft提供的开源产品,它是一种非常快的,内存中的,分布式,可伸缩的缓存框架,可用于.Net应用程序。
NCache是100%本机.Net。 它不仅比Redis快,而且还提供了Redis不支持的几种分布式缓存功能。 您可以在此处了解有关NCache和Redis之间差异的更多信息。 本文将讨论如何在ASP.Net Core应用程序中使用NCache。
首先,让我们创建一个ASP.Net Core项目。 如果您的系统已启动并运行Visual Studio 2017,请按照以下步骤在Visual Studio中创建一个新的ASP.Net Core项目。
现在,您应该已经准备好在Visual Studio中使用一个新的ASP.Net Core项目。 接下来,您将需要安装必要的NuGet软件包才能使用NCache。 通过NuGet软件包管理器窗口或从NuGet软件包管理器控制台安装以下NuGet软件包:
Alachisoft.NCache.SessionServices
在您的项目中安装此NuGet程序包后,就可以全部使用NCache了。
若要在ASP.Net Core应用程序中使用分布式缓存,应使用IDistributedCache接口。 IDistributedCache接口是ASP.Net Core中引入的,使您可以轻松地插入第三方缓存框架。 这是IDistributedCache的样子。
namespace Microsoft.Extensions.Caching.Distributed
{
public interface IDistributedCache
{
byte[] Get(string key);
void Refresh(string key);
void Remove(string key);
void Set(string key, byte[] value,
DistributedCacheEntryOptions options);
}
}
要使用NCache处理分布式缓存,您应该在Startup.cs文件的ConfigureServices方法中调用AddNCacheDistributedCache方法,如下面的代码片段所示。 请注意,AddNCacheDistributedCache()方法是ASP.Net Core的AddNDistributedCache()方法的扩展。
public void ConfigureServices(IServiceCollection services)
{
services.AddNCacheDistributedCache(configuration =>
{
configuration.CacheName = "IDGDistributedCache";
configuration.EnableLogs = true;
configuration.ExceptionsEnabled = true;
});
services.AddMvc().SetCompatibilityVersion
(CompatibilityVersion.Version_2_2);
}
这就是您需要做的。 现在,您可以开始在项目中使用NCache。
以下代码片段说明了如何使用NCache。 下面显示的GetAuthor方法(如果可用)从缓存中检索Author对象。 如果Author对象在缓存中不可用,则GetAuthor方法从数据库中获取该对象,然后将该对象存储在缓存中。
public async Task<Author> GetAuthor(int id)
{
_cache = NCache.InitializeCache("CacheName");
var cacheKey = "Key";
Author author = null;
if (_cache != null)
{
author = _cache.Get(cacheKey) as Author;
}
if (author == null) //Data not available in the cache
{
//Write code here to fetch the author
// object from the database
if (author != null)
{
if (_cache != null)
{
_cache.Insert(cacheKey, author, null,
Cache.NoAbsoluteExpiration,
TimeSpan.FromMinutes(10),
Alachisoft.NCache.Runtime.
CacheItemPriority.Default);
}
}
}
return author;
}
这是Author类。
public class Author
{
public int AuthorId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Alachisoft的NCache是.Net的分布式缓存解决方案。 IDistributedCache接口提供了用于在ASP.Net Core中使用分布式缓存的标准API。 您可以使用它快速轻松地插入第三方缓存,例如NCache。
翻译自: https://www.infoworld.com/article/3342120/how-to-use-ncache-in-aspnet-core.html
ncache .net