ASP.NET Core 缓存概述

现代 Web 应用程序需要快速的性能和可扩展性。随着应用程序的增长,频繁的数据库查询可能会降低速度,从而导致性能瓶颈和响应速度下降。

ASP.NET核心 是一个用于构建可扩展 Web 应用程序的强大框架,但当与 分布式缓存解决方案 喜欢 NCache. 缓存经常访问的数据可以减少数据库负载,增加响应时间,并提高可扩展性。

让我们讨论分布式缓存的好处、它的实际用例以及如何集成 NCache 使用 ASP.NET Core 应用程序。

 

ASP.NET Core 中的分布式缓存是什么?

分布式缓存将常用数据存储在多个服务器上,从而实现可扩展且可靠的 内存数据存储。这有助于减少延迟、最大限度地减少数据库查询并提高应用程序响应能力。 NCache 响应时间低于毫秒级,经测试,在集群环境下每秒可处理超过 2 万个请求。

特性 技术与商业效益
改进的性能 通过将数据缓存到内存中,实现了亚毫秒级的响应时间。 大幅减少昂贵的数据库调用和网络延迟。
线性可伸缩性 通过在运行时向集群添加更多服务器节点来处理不断增长的交易负载,从而确保为任意数量的用户提供一致的性能。
高可用性 采用自愈式点对点动态集群,即使在服务器维护或崩溃期间,也能确保 100% 正常运行时间和无单点故障。
数据可靠性 通过多节点复制拓扑结构维护数据完整性,并通过数据库依赖关系保持缓存与后端同步。
 

配置 NCache 适用于 ASP.NET Core

按照以下步骤安装和配置 NCache 适用于您的 ASP.NET Core 应用程序。

步骤1:安装 NCache

安装 NCache 服务器

安装 NCache 服务器在官网的两台服务器上。

安装 NCache 客户端 SDK

要将 ASP.NET Core 应用程序连接到缓存服务器,请安装以下软件: NCache 客户端 SDK 使用 NuGet:

Install-Package Alachisoft.NCache.SDK

确保你的 网络和防火墙设置 允许您的应用程序和缓存服务器之间的通信。

步骤 2:创建集群缓存

A 群集缓存 通过在多台服务器上分发缓存数据来提高可扩展性并确保高可用性。

  1. 验证网络 连接方式 - 确保缓存节点可以通过指定的网络端口进行通信。
  2. 配置 NCache - 绝大部分储备使用 NCache 管理中心 or PowerShell的 创建集群缓存实例。
  3. 添加缓存节点 - 添加多台服务器以提高性能和可靠性。
  4. 监控缓存健康状况 - 通过跟踪同步和节点可用性 NCache的监控工具。

步骤 3:安装和配置 .NET 客户端

设置后 NCache配置您的 ASP.NET Core 应用程序以连接到缓存。

Program.cs(修改)

using Alachisoft.NCache.Client;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ICache>(_ => CacheManager.GetCache("demoCache"));

var app = builder.Build();
app.Run();
 

运用 NCache 在 ASP.NET Core 中

1.从缓存中检索数据

此方法使用产品 ID 批量从缓存中检索多个产品,从而减少对缓存服务器的调用次数。

public Dictionary<string, Product> RetrieveProducts(List<int> productIds)
{
    List<string> cacheKeys = productIds.Select(id => $"Product:{id}").ToList();
    Dictionary<string, Product> cachedProducts = _cache.GetBulk<Product>(cacheKeys);
    return cachedProducts;
}

2. 将数据添加到缓存

此方法尝试从缓存中获取产品;如果不存在,则从数据库中获取产品并将其添加到缓存中,并设置一个过期时间。

public Product GetProduct(int productId)
{
    string cacheKey = $"Product:{productId}";
    Product product = _cache.Get<Product>(cacheKey);

    if (product == null)
    {
        product = FetchProductFromDB(productId);
        var cacheItem = new CacheItem(product)
        {
            Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
        };
        _cache.Add(cacheKey, cacheItem);
    }
    
    return product;
}

3. 在缓存中更新/插入数据

此方法首先更新数据库中的产品,然后插入或更新具有指定到期日期的缓存产品。

public void UpdateProduct(int productId, Product updatedProduct)
{
    // Update the database first
    UpdateProductInDB(productId, updatedProduct);
    
    // Update the cache after successful database update
    string cacheKey = $"Product:{productId}";
    var cacheItem = new CacheItem(updatedProduct)
    {
        Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
    };
    _cache.Insert(cacheKey, cacheItem);
}

4.删除缓存数据

此方法使用缓存键一次性从缓存中删除多个条目。

public void RemoveData(List<string> keys)
{
    _cache.RemoveBulk(keys);
}
 

高级功能有哪些? NCache?

NCache 提供额外的企业级缓存功能以提高性能:

 

开始使用 NCache 今天!

使用以下方式优化您的 ASP.NET Core 应用程序 NCache!减少数据库负载,提高性能,并轻松扩展。

常见问题

NCache 通过将频繁访问的数据存储在分布式内存缓存中,提高了性能。这显著降低了数据库负载和网络延迟,与传统数据库检索相比,响应时间可缩短至亚毫秒级。

与仅限于单个服务器的进程内缓存不同, NCache 它提供了一种分布式架构,可在整个 Web 服务器集群中共享数据。这消除了单点故障,并允许随着应用程序流量的增长而线性扩展。

是的。 NCache 为 ASP.NET 提供高性能的分布式会话状态提供程序。它确保会话数据在所有服务器节点上保持可用和一致,即使 Web 服务器发生故障也能提供高可用性。

NCache 包括企业级功能,例如类似 SQL 的搜索、用于事件协调的发布/订阅消息传递以及数据库依赖性,以确保缓存始终与后端数据源同步。

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。