许多公司发现Redis在数据量和工作负载适中的时候易于使用,但随着需求的增长这会迅速变化。Redis的拥有成本高、规模大时性能差以及操作复杂性的增加可能导致用户的预算超支、服务级别协议(SLA)违规以及应用程序推出延迟。这时候Aerospike可以提供有效的帮助。

作为NoSQL的Key-Value数据库,Aerospike可为大规模的读/写工作负载提供超快的性能、高可用性、出色的可扩展性和强大的数据一致性。金融、高科技、零售、电信和其他行业的公司每天都将Aerospike用于关键应用上。现实的例子是,一位Redis用户迁移到Aerospike,就可以“完美无缺地”处理其大规模增长的运营数据;另一个用户从Redis迁移到Aerospike则削减了85%的成本。

Aerospike 超过Redis的5个标志:

标志1 你开始担心你的总体拥有成本(TCO)
标志2 你需要更大的可扩展性和弹性
标志3 你需要具有高性能的持久性
标志4 你需要数据强一致性
标志5 你需要大规模场景的可管理性和操作简易性

标志1:你开始担心你的总体拥有成本

飙升的数据量和市场竞争压力迫使企业更快地交付新的、能实时处理10s-100s TB(或更多)的数据的应用程序。这些需求会给Redis群集带来很大的压力,促使用户部署更多节点、内存和人力。这都会提高总体拥有成本(TCO)。

Aerospike的专利——混合存储架构(HMA)运行效率非常高,与基于缓存的解决方案(如Redis)相比,它通常可将TCO降低5倍或更多。实际上,针对一个40TB在3年期间每年有25%的年增长率的数据库,我们比较了运行3种不同配置的Redis与运行Aerospike的成本,示例场景是在Amazon EC2实例上运行的读/写均匀分配工作负载。对比每个Redis配置,Aerospike在第1年都节省了大量成本; 到3年底,Aerospike的累计节省额是从220万美元到870万美元不等,具体取决于所需的Redis体量。

标志2:你需要更大的可扩展性和弹性

企业通常会添加更多节点(和DRAM)来扩展Redis,主要是因为它是一个最初设计用于内存处理的单线程系统。但DRAM价格昂贵,并且管理越来越大的集群并不容易。Redis on Flash(ROF)无法解决这些问题,因为它将源数据和索引保存在内存中,缓存“热”数据以提高性能,并依赖于幕后的占有大量内存的RocksDB进程。

Redis配置要求也会限制集群弹性。群集只能按当前分片数的倍数进行扩展,并且用户无法从群集中删除分片。因此,在高峰期之前快速扩大规模或之后缩减规模都可能会非常困难和昂贵。

Aerospike不是这样。动态集群管理、自动数据重新分配、智能客户端层以及有效的使用易失性和非易失性存储器(DRAM和SSD)都有助于提高Aerospike卓越的可扩展性和成本效益。例如,一个客户在从Redis迁移到Aerospike之后,集群节点数从40减少到6个。

标志3:你需要具有高性能的持久性

有没有想过为什么Redis会发布使用完整DRAM实例和只有1份用户数据的基准测试?正如许多公司发现的那样,Redis的持久性——通过快照和仅附加文件方式——可能导致大幅度的性能下降甚至导致数据丢失。

相比之下,Aerospike是建立在持久化的基础上的。已发布的基准测试功能是基于索引在内存(DRAM)和数据在闪存(SSD)的默认配置。用户可以自由地分享他们自己的基准测试结果——因为Redis的许可限制,这对于Redis用户来说是比较困难的一件事。Aerospike用户通常享有亚毫秒级数据访问速度,即使数据库中有数十亿条记录,或几十甚至几百TB的数据。

标志4:你需要数据强一致性

Redis支持最终一致性,在某些情况下可能导致过时读取甚至数据丢失。WAIT命令与一致性密切相关,但Redis文档承认WAIT不会使Redis在数据存储有强一致性。(https://redis.io/commands/wait)

另一方面,Aerospike支持记录级事务的强一致性和即时数据一致性。它保证写入事务将按指定的次序操作,永远不会丢失。对于每个读取事务,Aerospike用户可以选择完全线性化或会话一致性。Aerospike顺利地通过了Jespen测试 (Aerospike 4.0, Strong Consistency, and Jepsen),Redis还没有通过。

标志5:你需要大规模场景的可管理性和操作简易性

即使你今天的数据量适中,随着你的需求增长会发生什么?扩展的Redis需要大量内存并导致大型集群,这意味着更复杂、更频繁的节点故障。

你是否将Redis的用作持久性SQL或NoSQL的数据存储的内存缓存以加速对数据的访问?如果是这样,你可能正在努力管理和同步两个环境,并使你的应用程序不会因访问陈旧数据或由于缓存未命中而导致性能降低。此外,覆盖扩展两个系统的运营成本可能令人止步,尤其是在你的数据量和工作负载增长时。

相比之下,Aerospike用相对较小的服务器体量上管理极大的数据集,从而产生可靠、简单的环境。我们的比较TCO分析显示,Aerospike用的服务器数量仅为Redis的所需的9%-23%,当然具体数目取决于其配置。毫无疑问,许多公司已经用Aerospike取代了他们的双层系统的构架,以便对持久数据进行超快速访问。

使用Aerospike为未来做好准备

如果你正在努力用Redis实现你想要的系统,或者如果你经历过刚刚讨论的Redis的5个标志中的任何一个,为什么不去尝试一下Aerospike可以为你做什么呢?许多其他公司因为使用Aerospike已经获得了切实的商业利益。

谢谢您的阅读!