视频

了解更多
企业级缓存买家指南(一本配套电子书,包含企业级缓存解决方案,可在扩展的同时提供持续的高性能),现已发布。请在下方免费下载。
几十年来,数据库一直在幕后驱动着应用程序和网站,使数字体验更具动态性和适应性。但这种模式存在一个根本问题。这些数据库也使得应用程序变得更慢。
这就是缓存的作用。它将存储在服务器硬盘上的数据库中的数据移动到临时位置,以便更快、更有效地访问。因此,获取数据的复杂、耗能且耗时的操作只需执行一次。从那时起,数据就可以从缓存中快速有效地检索。
当然,随着公司规模扩大、业务范围增长,风险也随之增加,容错空间变得极小。突然之间,缓存不再是“可有可无”,而是“必须拥有”。对小型公司而言的便利之处,对大型竞争激烈的企业而言变得至关重要。失败绝非选项。
这就是企业级缓存的由来。它建立在基础缓存的坚实基础上,提供了一系列企业为满足不断增长的需求而必备的功能,包括高可用性、真正的产品支持、亚毫秒级性能、完全分布式复制以及管理复杂数据集的经济高效方式。它更具可伸缩性、更抗故障,而且是的,更经济实惠。
采用企业级缓存解决方案的理由很简单:当您需要具备扩展能力且无法承受失败时。如何判断何时应该采用企业级缓存解决方案?需要考虑以下几个因素:
1. 您的原始数据库无法有效扩展
渺小的蚂蚁是地球上最令人惊叹的生物之一。它能够举起接近自身体重 5000 倍的物体。几个世纪以来,无数科学家(和科幻电影制作者)都在想,如果我们把这微小蚂蚁的巨大力量放大到人类体型,会发生什么。不幸的是,蚂蚁无法按比例放大。如果我们制造一个和您同事一样大的蚂蚁,它的腿会在自身重量下坍塌。
尽管扩展缓存的危险并非如此惊人,但它们存在一些相似之处。随着扩展,标准缓存通常会遇到两种瓶颈:存储和资源限制。前者指可用于缓存数据的空间量。后者指执行必要功能(包括存储和检索缓存数据)的能力。
解决方案可能很简单,但可能永无止境。当达到存储限制时,标准补救措施显而易见:增加存储空间。如果处理所有资源的能力不足,就增加带宽和处理能力。通过纵向扩展,您可以增加分配给缓存以运行的资源。
在本地部署中,这通常意味着用更强大的服务器替换当前服务器,该服务器具有更多 RAM、处理能力、网络带宽,或者三者兼具。如果您的缓存位于云端,这可能意味着迁移到更大的实例。另一种选择是横向扩展,这涉及到向处理缓存的实例集群中添加更多节点,而不改变单个缓存实例的大小。简而言之,纵向扩展是按大小增加,而横向扩展是按数量增加。
2. 缓存成本变得过高
稳步扩大缓存规模以满足日益增长的需求可能暂时解决您的问题,但是代价是什么?如果您像许多人一样,您的物品已经超出了您的房屋或公寓容量,您可能不得不租用一个或多个储物单元。如果是这样,那么您会意识到,在大多数情况下,用不值钱的小摆件填满储物柜与用无价古董填满它的成本是相同的。
基本缓存的工作方式类似。常用或高价值的数据与不太常用或不太重要的键值对享有相同的待遇。不仅如此,当缓存空间不足时,数据的性质无关紧要。您就是没有空间了。不幸的是,增加缓存空间可能很昂贵。Redis on Flash(Redis Enterprise 的一个组件)通过建立缓存层级来帮助控制您的缓存成本。更活跃使用的缓存值存储在 RAM 中,而不太常用的则可以存储在更大、更便宜的闪存中。
3. 您不能再依赖单个主节点
向缓存中添加节点可以满足流量增长的需求,但这只解决了问题的一部分。基本缓存允许添加读取副本,这是一种横向扩展的方法,通过将读取负载分布到多个服务器来提高读取性能。不幸的是,您仍然受限于一个主节点来处理所有写入操作。
如果您的部署跨越多个区域,或使用多个提供商或多个云,受限于单个主节点可能会产生问题。如果您的应用程序拥有广泛的客户群,依赖单个主节点可能会造成严重的瓶颈。这是因为您的所有写入请求,无论来源如何,都必须指向一个有限的位置。
这有点像去一家外卖餐厅,您可以从多个窗口取餐,但只有一个收银台是开着的,您需要在那里付款。借助 Redis Enterprise 的Active-Active 异地部署,任何主实例,无论其区域或提供商如何,都可以处理读取和写入请求。
4. 高可用性已从奢侈品变为必需品
对于小型应用程序来说,偶尔的应用宕机可能令人烦恼和尴尬。而企业级中断则是游戏规则的改变者。少儿棒球比赛中的一次防守失误是不幸的。世界大赛中的类似失误可能耗资数百万。
同样,可用性故障不再仅仅是不便。它是真正的责任。事实上,根据您与客户签订的 SLA,它可能让您陷入法律风险。不幸的是,基本缓存不提供扩展、安全性或高可用性的固有保证。虽然理论上可以在您的开源缓存之上构建许多此类保障措施,但这些自行开发的解决方案通常伴随着其特有的麻烦和隐藏成本。
当然,一些第三方Redis 缓存提供 3 个 9 的可用性,但仅限于单个区域且没有数据持久性,只有快照。如果您的应用程序受限,那是一个有限的解决方案。但如果您的公司和/或客户群是国际性的,那是不够的。Redis Enterprise Cloud 在一个或多个区域提供 5 个 9 的 SLA。它支持数据持久性和备份,而不影响性能。此外,它还提供自动集群恢复和纯内存复制。
随着公司扩张而带来的所有这些不断增长的需求可能导致加载时间变慢,这会疏远长期客户,并导致潜在新客户的大范围流失。不管喜欢与否,响应时间是在线体验的关键组成部分。
根据Unbounce 的数据,70% 的用户表示加载时间影响了他们从在线零售商处购买商品的意愿。研究表明,应用程序大约有 100 毫秒的时间,用户就会感觉到正在等待。这只是一次眨眼时间的三分之一。如果您的客户在应用程序加载时能够眨眼,那么您很可能已经失去他们了。
而且这不仅仅是购买决策的问题。Salesforce 的一项研究发现,83% 的客户认为体验与公司的产品和服务同等重要。
最后,在病毒式传播的时代,一个客户的孤立不良体验不太可能长期保持孤立。当人们在网站上遇到不满意的体验时,他们通常不会只放在心里。相反,根据 Salesforce 的数据,61% 的客户会与他人分享这种不良体验。因此,您应用程序的不足可能会引发恶意传播的连锁反应,新闻迅速在您的潜在客户群中传播开来。
幸运的是,最后这组令人警醒的统计数据也有好的一面。同一项 Salesforce 研究发现,70% 的客户乐于与他人分享他们的良好体验。如果您的公司正在发展壮大,并且希望建立一个快乐的新客户群,而不是流失老客户,那么企业级缓存可能正是您所需的基石,能够为他们数字体验的潜在无限扩展奠定基础。
如需更多信息,请查阅我们的免费电子书:企业级缓存买家指南。