Redis比Aerospike更受青睐的用例有哪些?

时间:2015-06-07 10:55:30

标签: redis aerospike

我们目前正在使用Redis,它是一个很棒的内存数据存储区。我们开始研究内存限制是一个因素并考虑其他选项的一些新问题。我们遇到的是Aerospike - 它似乎非常快,甚至比内存单一分片操作中的redis更快。

现在我们已经将它添加到我们的堆栈中,我试图了解Aerospike无法替换redis的用例?

4 个答案:

答案 0 :(得分:5)

Aerospike支持的数据类型少于Redis,例如,Aerospike中没有pub / sub。但是,Aerospike是一个分布式键值存储,具有出色的聚类功能。

这两个都是很棒的数据库。这实际上取决于您正在处理的数据集的大小以及您对增长的期望。

答案 1 :(得分:4)

<强> Redis的:

键/值存储,数据集适合单机中的RAM,或者你可以在多台机器(和/或核心,因为它是单线程)上自我分片,将数据保存到磁盘,具有列表/集合等数据结构,基本发布/ sub,简单的从属复制,Lua脚本。

<强>塞式:

键/值行存储(意味着值包含具有值的二进制文件,这些值可以是更多地图/列表/值以具有多个级别),多线程以使用所有核心,构建用于跨复制机器进行群集,并且可以执行跨数据中心复制,UDF的Lua脚本。可以直接在SSD上运行,因此您可以存储更多数据,而无需将其放入RAM中。

<强>比较

如果你只有一个较小的数据集,或者单核性能很好,那么Redis非常棒。如果您需要更多的读取可扩展性,则安装快速,易于运行,只需使用1命令即可附加从站。 Redis还具有更多独特的功能,包括列表/设置/位图操作,因此您可以开箱即用“更多”。

如果您想存储更复杂或嵌套的数据,或者需要在单台机器或群集上获得更高的性能,那么Aerospike可以更好地完成工作,同时减少运营开销。非常快的性能和简单的集群设置,所有节点都是完全相同的角色,因此您可以扩展读取和写入。

这是一个巨大的差异,超出单个核心或服务器的可扩展性。使用Lua脚本,您通常可以填写Redis对Aerospike的任何本机功能。如果您有大量数据(如TB),那么Aerospike的SSD功能意味着您可以在没有RAM成本的情况下获得类似RAM的性能。

答案 2 :(得分:0)

答案 3 :(得分:0)

Redis和Aerospike是不同的,两者各有利弊,但在以下两个使用案例中,Redis似乎比Aerospike更合适:

  1. 当我们不需要复制时 我们使用大量缓存进行密集写入,并使用非常短的ttl(20s)进行重复数据删除。复制这些数据毫无意义。 Redis可能会使用一半的CPU,而不是Aerospike的一半。由于流水线操作,它会更便宜,更快,甚至更快。

  2. 当我们需要跨数据中心复制时 我们有一个大型数据库,我们需要从5个数据中心访问,大量写入,密集读取。没有完美的解决方案,但到目前为止最好的解决方案似乎是将中央数据库存储在Redis中,并使用Redis主从复制在每个数据中心上存储副本。