解决 Web Farms 中的 ASP.NET 缓存限制 NCache

Microsoft 在 ASP.NET 的 Application 范围内提供了 ASP.NET Cache 对象,它允许您缓存应用程序数据并减少那些昂贵的数据库访问和 提高您的 ASP.NET 性能. 以下是 ASP.NET 缓存的典型使用方式。

using System.Web.Caching;
...
string key = "Employee:EmployeeId:1000";
Employee employee = (Employee)Cache[key];

if (employee == null){    
  // Load Employee from DB & put it in the Cache
  LoadEmployeeFromDb(employee);
  Cache.Insert(key, employee, null, 
               Cache.NoAbsoluteExpiration, 
               Cache.NoSlidingExpiration, 
               CacheItemPriority.Default, null );
}

Web 场中的 ASP.NET 缓存限制

ASP.NET 缓存是一个独立的进程内 (InProc) 缓存,因此如果您的应用程序部署在负载平衡的 Web 场中,则会有许多限制。 这些限制是:

  • 多个缓存副本未同步: 由于 ASP.NET 缓存是独立的,因此 Web 园或 Web 场中缓存的多个副本彼此不同步。 而且,这会给您的应用程序带来主要的数据完整性问题。
  • 工作进程回收时缓存丢失: 回收工作进程时,所有 ASP.NET 缓存数据都将丢失。 而且,这会导致性能问题,因为您必须再次从数据库重新加载整个缓存。
  • 缓存大小问题是有限的: ASP.NET 缓存必须存在于 ASP.NET 工作进程内存限制内,这严重限制了缓存的大小。
  • 通过 DB 进行缓存同步存在问题: ASP.NET Cache 中的 SQL CacheDependency 允许您将缓存与数据库同步。 而且,有些人使用它通过数据库来同步不同Web服务器上的多个缓存副本。 但是,这具有重大的性能和可伸缩性问题,因为数据库再次处于所有活动的中心,并且 SQL CacheDependency 本身不是非常可伸缩的。

分布式缓存(NCache): 网络农场解决方案

NCache 是一个分布式缓存,解决了上面提到的 ASP.NET Cache 的所有限制。 这是如何 NCache 解决这些限制:

  • 在网络场中同步缓存: NCache 是一个 分布式缓存 并在网络场中的多个服务器之间同步缓存。 这意味着不存在数据完整性问题 NCache.
  • 在网络花园中缓存 OutProc: NCache 是一个进程外缓存,因此多个工作进程可以共享一个公共缓存。
  • 缓存大小非常可扩展: NCache 不仅将任何 ASP.NET 工作进程类型的内存大小限制,还允许您 添加更多缓存服务器 以增加存储容量。 因此,您可以轻松拥有 100GB 或更多的缓存大小。
  • 网络场中高事务的缓存扩展: NCache 是一个分布式缓存并提供 可扩展的缓存拓扑。 这允许 NCache 扩展缓存集群没有任何问题。
  • 缓存与数据复制高度可靠: NCache 提供 智能数据复制 在不牺牲任何性能的情况下。 这种数据复制可确保即使缓存服务器出现故障,也不会丢失任何数据。 这允许您的 ASP.NET 应用程序缓存数据而不必担心任何数据丢失。

NCache 拥有 ASP.NET 缓存 API 以及更多

NCache 提供所有 ASP.NET 缓存功能和相同的 API 加。 这使您能够 从 ASP.NET 缓存迁移到 NCache 无缝。 您只需更改命名空间 系统.Web.缓存Alachisoft.NCache.Web.缓存 并确保所有被缓存的对象都是可序列化的。

此外, NCache 提供了许多 ASP.NET Cache 所没有的缓存功能。 以下是部分列表:

阅读更多关于所有 NCache 功能.

如何快速使用 NCache?

您可以采取以下一些简单的步骤来快速从中受益:

  1. Install 安装 NCache:在您的网络服务器和两个缓存服务器上
  2. 创建缓存: 通过基于 GUI NCache 管理工具
  3. 缓存应用程序数据 NCache: 你需要参考 NCache 组装,然后制作 NCache 用于从缓存中存储和获取 .NET 对象的 API 调用
  4. 监控 ASP.NET 性能:您现在可以监控 ASP.NET 性能,还可以 NCache 性能。 NCache 提供丰富的 PerfMon 计数器供您监控

接下来做什么?

联系我们

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