缓存市场同样如此。普遍认为Redis是“易于使用”的。正因如此,它成了第三受欢迎的NoSQL引擎以及排名第一的内存中键值存储。另一方面,普遍认为Redis是简单缓存,缺乏横向可扩展性和自动故障转移。

公平地说,一些Redis产品已经开始针对企业场景, 但与像Pivotal Cloud Cache (PCC)这样全功能的企业产品相比,差距仍然很明显。

当然,如果您的企业中有数千个应用,您会频繁使用这两种产品。为此,Pivotal的产品可以满足两个重心的要求:Redis实现易用性,PCC涵盖高端企业功能。

让我们来深入探讨一下Redis和PCC的使用场景。

何时使用Redis?

什么样情况下redis做集群 什么时候需要redis_强一致性

许多Redis使用场景是由Redis预打包数据结构支持的。通常称Redis为数据结构存储。每个Redis数据结构都自有一组唯一的命令,使得在业务场景中可以非常直接、轻松地运用这些数据结构。Redis提供API权限来公开这些命令,以简化用于存储、访问和使用由应用生成的数据的代码。下表中是几个示例,特定使用场景与括号中显示的相关Redis命令相对应。

什么样情况下redis做集群 什么时候需要redis_强一致性_02

Redis也非常适合纯粹的缓存使用场景,写入相对较少,并且缓存数据的不可用性不会对整个应用的可用性产生负面影响(i.e. 可以从另一个系统中读取数据)。其他Redis使用场景包括分布式锁、用户会话存储、Cookie存储、搜索引擎、广告定位、论坛、地理搜索和配置管理。

Redis具有可扩展性,可新增数据结构(Redis模块)并扩展到新的使用场景。

另一个好处是:Redis有一个非常棒的社区,这对于企业开发人员来说是一笔真正的财富。

何时使用Pivotal Cloud Cache

什么样情况下redis做集群 什么时候需要redis_使用场景_03

PCC支持纯粹的缓存使用场景。但它也是真正的数据存储。PCC有很多功能,包括群集内的强一致性、支持多个数据中心、可靠的事件交付以及强大的安全模型。您可以将PCC看作是用于构建高性能、有状态、横向扩展系统的框架。

许多使用PCC的场景都是因为需要强一致性。强一致性什么时候很重要呢?当您的系统“以更新为导向”而不是“以插入为导向”时。如果在没有强一致性的情况下进行更新,存在冲突的更新可能会永久丢失。

对于这些使用场景,务必要将所有更新同步复制到更新条目的所有备份。这样,即使出现网络分段,也始终能够获得此更新后条目的最新正确值。只有在一种情况下无法获得最新的正确值,即网络分段导致托管此条目的所有服务器均无法访问。

PCC从Pivotal Cloud Foundry继承了许多出色功能。

PCC在PCF上运行,因此它也受益于四层高可用。如果您的使用场景有以下要求,那么这一组合就非常重要:

· 极高的吞吐量

· 低延迟

· 交易处理

· 事件处理

· 计算网格

根据客户来电的情况,我们制作了这张表格,展示PCC面向各行业的使用场景:

 

行业场景会计/金融/银行每次交易后余额需要保持一致在线电子商务个性化的客户互动(例如,需要访问最新准确客户信息的产品)制造IoT传感器管理使用场景需要一致的最新信息来跟踪事物的状态和响应异常行为交易以毫秒为单位分析和执行交易需要快速获得正确的定价和风险信息法规报告报告的准确性和速度都至关重要 。

每个行业都有需要强一致性的附加领域:计费、物流、库存和风险管理。

PCC还适合哪些领域?请考虑以下工作负载:

  • 拥有大量更新争用的大容量事务系统。这些系统要求极高吞吐量、低延迟的交易处理。这种使用场景的例子包括预订系统(例如印度/中国铁路、西南航空)和电信公司激活系统。
  • 提取海量数据流,然后执行快速计算的事件处理系统。这些使用场景的例子包括检查每个传入交易以进行欺诈检测,或检查每个传感器读数以检测IoT系统是否存在异常的系统。
  • 计算网格:由于无法将数据从存储移出到处理节点,处理必须在靠近数据的位置完成。例子包括资产组合评估、债券定价和风险管理等。对于这些计算密集型使用场景,PCC跨群集中的多个节点并行执行分布式计算。

所以,PCC的功能是全面的。但在可用性方面,它与Redis相比如何呢?其差距正在缩小!PCC产品团队已经简化了该产品的初始设置。我们针对各种配置参数做出了一些常见假设,从而简化了这一工作流。

在可用性与一致性之间做出权衡

Redis和PCC的可用性和一致性特征取决于系统是配置为单系统、群集系统还是位于不同位置的多个群集。Pivotal Redis for PCF是单系统。好在Pivotal Services Marketplace提供可以群集化或通过WAN链接配置为互联群集的Redis合作伙伴产品。这些合作伙伴产品包括Redis Labs和a9s Redis。PCC是群集系统;单系统版本正在研发中,不久就会推出。

PCC被认为是群集系统。而Redis首先推出的是单系统版本。随后增加了群集版本。作为后期添加的功能,Redis中的群集功能并不像在PCC中那样一开始就集成在一起。

下表总结了每种配置中每种产品最显著的可用性和一致性特征:

什么样情况下redis做集群 什么时候需要redis_使用场景_04

如果您打算使用Redis和PCC,应该知道使用的时机

Redis提供简单缓存的最快速路径。可以在不需要企业级功能时使用它。另一方面,PCC通过提供分区容错、强一致性和额外的可用性(通过PCF)来限制CAP定理所带来的权衡。Mike Stolz在最近的文章“既然不能打破CAP定理,那就用PCC无限接近吧!”中探讨了PCC能够面面俱到的独特能力。

您的选择应该基于每个使用场景的独特需求。看完本文后,您是否已经可以提出正确的问题并评估每种产品的优劣呢?