传统的 ASP.NET 框架依赖于 ASP.NET Cache 仅限于单服务器(InProc),缺乏对多服务器环境的支持。它也不允许与第三方分布式缓存集成。因此,开发人员被迫依赖低效的独立缓存机制。
微软通过引入 ASP.NET Core 解决了这些挑战。 ID分布式缓存,可扩展、多服务器缓存解决方案的接口。 NCache 它很容易与 IDistributedCache 集成,从而为您的 ASP.NET Core 应用程序提供高性能, 功能丰富的缓存层.
IDistributedCache 接口提供了一种跨多个服务器工作的集中式缓存机制,使其成为云原生应用的理想选择。 集装箱和 基于微服务 架构。虽然标准接口定义了契约, NCache 提供实际的分布式实现,确保数据在服务器重启后仍然存在,并能随流量线性扩展。
using Microsoft.Extensions.Caching.Distributed;
using System.Threading;
using System.Threading.Tasks;
public interface IDistributedCache
{
byte[]? Get(string key);
Task<byte[]?> GetAsync(string key, CancellationToken token = default);
void Refresh(string key);
Task RefreshAsync(string key, CancellationToken token = default);
void Remove(string key);
Task RemoveAsync(string key, CancellationToken token = default);
void Set(string key, byte[] value, DistributedCacheEntryOptions options);
Task SetAsync(string key, byte[] value, DistributedCacheEntryOptions options, CancellationToken token = default);
}
许多缓存解决方案,例如 内存分布式缓存仅限于单个服务器,因此不适合需要 可扩展性 和 高可用性. NCache另一方面,它是一个专为 .NET 应用程序设计的真正的分布式缓存解决方案,可确保更好的性能和可扩展性。
整合 NCache 使用 ASP.NET Core 应用程序非常简单。您可以插入插件。 NCache 无需修改现有应用程序逻辑。这样您就可以从内存缓存顺利过渡到高可用性分布式缓存。
Install-Package Alachisoft.NCache.DistributedCache
var builder = WebApplication.CreateBuilder(args);
// Register NCache as the IDistributedCache provider
// Benefits: Multi-server scalability, High Availability, and 100% Native .NET
builder.Services.AddNCacheDistributedCache(options =>
{
options.CacheName = builder.Configuration["NCache:CacheName"];
// NCache settings can be dynamically adjusted in appsettings.json
// ensuring zero-downtime configuration changes
});
var app = builder.Build();
app.MapControllers();
app.Run();
或者,您可以配置 NCache ,在 应用设置.json 文件并动态加载设置:
{
"NCacheSettings": {
"CacheName": "myCache",
"EnableLogs": true,
"EnableStatistics": true
}
}
这确保了生产环境中的可扩展性、容错性和高可用性。
此 ID分布式缓存 接口提供了一个基本的键值存储,它很有用,但功能相当有限。 NCache 通过提供广泛的高性能缓存 API,为企业应用程序提供强大的分布式缓存。
| 特性 | 标准 IDistributedCache(基础版) | NCache API(企业版) |
|---|---|---|
| 查询灵活性 | 仅键值查找 | SQL 和 LINQ 查询 |
| 资料组织 | 扁平结构 | 标签和命名标签 |
| 数据的完整性 | 独立项目 | 缓存依赖关系 |
| 实时消息传递 | 不支持 | 发布/订阅消息 |
| 数据库同步 | 需要手动编码 | 自动读取和写入 |
| 数据可用性 | 启动时为空 | 缓存加载器和刷新器 |
通过使用 NCache API,组织可以克服IDistributedCache的限制,为其.NET应用程序释放增强的性能、灵活性和企业级缓存。
准备好使用高性能分布式缓存优化您的 ASP.NET Core 应用程序了吗?了解更多 NCache 并利用其强大的功能。