缓存是用来提高应用程序性能的常见技术,其实现方式是将常用数据从慢数据源复制到更快的数据源。对于数据驱动的应用程序来说,该技术通常需要将从数据库或 Web 服务检索到的数据缓存到本地计算机的内存中。
当缓存特定于每个应用程序时最容易实现缓存技术,但是如果多个应用程序需要使用一个公共缓存,那么问题将变得更具挑战性。例如,大型网站通常使用服务器场,其中包含多个提供相同内容的计算机。当每个请求到达时,它会被分配给场中的其中一台计算机。然而,如果信息缓存到场中的一台计算机内存中,其他计算机中的缓存就无法访问它,因此降低了缓存的效率。该问题的一种解决方案是将缓存移到集中式的数据存储(如数据库),或将场中的其中一台服务器指定为缓存服务器,只用来存储缓存的唯一副本。使用集中式缓存存储存在一个问题,那就是它们引入了单点故障,且会成为瓶颈。
要克服单一、集中式缓存存储的局限性,请考虑使用 Alachisoft 开发的 NCache 3.2。NCache 是一个群集缓存框架,能够无缝管理分布在多台计算机上的缓存。管理员首先通过 NCacheManager 工具指定群集拓扑和缓存策略。管理员可以指定多种设置,包括是将缓存存储在内存还是磁盘中、逐出策略和最大缓存大小等;这些设置和拓扑均可在运行时修改。此外,NCacheManager 还提供一系列统计数据,它们不但可用于监控缓存的运行状况,还可作为微调缓存设置以获得最优性能的指标。
在定义缓存群集时,您可以指定是应复制群集内的缓存还是应对其进行分区。复制的缓存群集所拥有的缓存内容与群集中每台机器上的内容均相同。因为没有单点故障,所以复制的缓存可提高可靠性;但是对群集的任何更新都必须复制到所有的群集。因此,对以读取为主的缓存或小群集来说,复制的群集是理想选择。另一方面,分区缓存在群集内的各个计算机之间划分缓存内容,并为更新和大型群集实现了更好的性能。
NCache 还提供了集成到 Microsoft 缓存应用程序块 (CAB) 的提供程序。Alachisoft 公司发布了一个NCache Express版本,这个版本是可以免费使用的,但是有如下限制:
NCache企业版特性如下:
缓存拓扑
动态聚类
ASP.NET 会话聚类
三方整合
数据到期
缓存依赖关系
缓存与数据库同步
Clustered-Wide 事件通知
Object Query Language (OQL)
回收
存储选项
NCache 管理器
杂项