Aerospike是一个键值、内存中、可操作的 NoSQL 数据库,具有支持复杂对象且易于扩展的 ACID 属性。但是我已经使用了完全相同的东西。
Redis也是一个键值对,内存中(但持久保存到磁盘)NoSQL 数据库。它还支持不同的复杂对象。但与 Aerospike 相比,Redis 使用时间更长,已经拥有一个活跃的社区,并在其中开发了很多项目。
那么aerospike和redis等其他no-sql key-value数据库有什么区别。有没有哪个地方更适合放置气钉。
附言我正在寻找在现实世界中至少使用过这些数据库中的一个(最好是两者)并且没有真实生活经验(不是从官方网站复制粘贴)的人的答案。
如果非要用一个词来回答,那就是“性能”。 Aerospike 的性能比现有的任何 clustered-nosql 解决方案都要好得多。每个节点的更高性能意味着更小的集群,即更低的 TCO(总拥有成本)和维护。 Aerospike 执行自动集群、自动分片、自动重新平衡(当集群状态发生变化时),其中大部分需要在其他数据库中手动执行。
我说“集群”是因为我不想在该组中混合使用 redis(尽管 redis 集群处于测试阶段)。 Aerospike 和 Redis 的纯内存性能不相上下。但是 Redis 希望在应用程序层处理很多事情,例如分片、请求重定向等。尽管 Redis 有一种持久化方式(快照或 AOF),但它有自己的问题,因为它的设计更像是一个插件。 Aerospike 是 native 开发的,坚持不懈。 redis的集群还涉及到设置master slave等,大家可以看看这个talk比较和对比 Redis 与 Aerospike。