事实证明,基于传统 RDBMS 的数据库层是实现应用程序有竞争力的响应时间的最大瓶颈。 这迫使应用程序供应商寻找可以提供更高性能的替代方案。 一种这样的替代方法是将数据存储在分布式缓存中。
从可用的缓存技术中,您需要选择一种能够回答大多数(如果不是全部)该领域中提出的主要问题的技术。 展望未来,我将在这个领域比较两个产品,Couchbase 和 NCache.
1 – ASP.NET 会话
ASP.NET 会话状态缓存 已经走了很长一段路,从将会话信息保存在 Web 服务器的内存中(默认),到将其保存在状态服务器上,再到将其存储在 SQL 服务器上。 所有这些都有一个共同的限制,那就是单点故障。 如果发生以下任何情况,会话状态将丢失:Web 服务器关闭、状态服务器关闭或 SQL 服务器关闭。
为了回答所有这些问题, NCache 通过将会话状态保存在其开源分布式缓存中来提供解决方案。 由于它是分布式的,因此没有单点故障。 尽管它很重要,但 Couchbase 不支持保存 ASP.NET 会话。
NCache 更多信息 NCache ASP.NET 功能 NCache 配套文档
2 - ASP.NET View State
ASP.NET 使用视图状态在多个 HTTP 请求之间存储页面、控件和自定义值。 在某些情况下,我们在页面上有复杂的控件,例如数据网格控件,表示视图状态的字符串会变得非常大。 在这种情况下,您将使用额外的带宽来回传递此字符串而没有任何实际好处。 此外,您正在打开安全方面的漏洞。
有哪些方法可以解决这些问题? 我们所需要的只是一个分布式缓存,它可以存储视图状态文本并传回一个标识符,该标识符可用于从存储中检索我们的视图状态。 NCache 以以下形式提供此确切功能 ASP.NET View State 高速缓存,而 Couchbase 没有。
NCache 更多信息 NCache ASP.NET 功能 NCache 配套文档
3 - Memcached 智能包装
NCache 提供与集成的支持 Memcached 以透明的方式使用 Memcached 积分.
让我简单说几句 Memcached. 它是一种流行的分布式缓存,正在市场上使用,但提供了非常基本的缓存功能。 它不提供任何对高可用性、数据复制、缓存弹性和易于管理的支持。
Couchbase 不提供任何此类集成,因此能够适应 Couchbase 以供使用 Memcached,只有一种方法; 从头开始重写你的代码!
4 – 安全与加密
需要快速响应时间的应用程序的基本要求之一是数据安全。 这使得分布式缓存提供者必须具备安全性和加密功能。
NCache 设备齐全,可以全面地为这两个功能提供支持。 另一方面,Couchbase 未能提供对数据加密和活动目录/LDAP 身份验证的支持。 阅读更多 NCache 加密 点击此处。
5 – 通读和通写
通读意味着您的应用程序总是向缓存请求数据,如果没有数据,缓存会从您的数据源中获取数据并缓存此数据以供将来访问。 这大大简化了您的应用程序代码,因为与数据库相比,缓存 API 的使用非常简单。
同样,直写允许您的应用程序写入缓存,然后缓存将相同的数据同步或异步写入数据库。 这两个功能都有助于您将缓存用作企业数据存储,并让所有应用程序从中读取和写入。
NCache 为 Read-through 和 Write-through 提供全面支持,但 Couchbase 未能做到这一点,因此落后 NCache 这里也是。 更多关于 通读和通写.
NCache 更多信息 支持源提供者文档 NCache 配套文档
延伸阅读
对于 Couchbase 的逐个功能比较 NCache,请看以下链接: