1. 数据存放
数据可以放内存,也可以放SSD。
数据放内存时速度肯定会很快,但这和memcache一样,相比memcache性能并没有优势
数据放内存时可以进行持久化配置,但文档只有一个地方提了一下,没展开描述,说明持久化不推荐使用。
数据也可以放SSD,并做了特定优化,相比mysql会更快,但数据操作模型过于简单,可使用场景很少。也比mongo性能更好,但其要求SSD存储,这样容量较小,费用也较高,这时mongo是好选择
2. 数据操作模型
支持 按主键及二级索引筛选数据
支持 聚合 (强大,一个卖点)
不支持排序(通过聚合功能的lua脚本也可能可以实现,但并不现实)
虽然支持类SQL语法操作,但可进行的操作非常简单,好于memcache, 稍好于mongo,比redis差些,跟mysql完全没法比,但其聚合功能还比较强大。
3. 集群管理
相当强大,多个平等的结点,平摊存储所有数据,并且互相备份。集群结点的失效及添加完全自动化处理,不影响用户请求。
相比memcache,这是它强大的地方,也不会弱于其它nosql的集群管理。
4.存储大数据
内存或SSD中可以存放很大的单个二进制数据。
5. 聚合功能
这里聚合的概念等同于mysql中的聚合。可以通过编写lua脚本,实现对数据的聚合,此时aerospike可以看作一个分布式的基于内存的map-reduce计算平台,相比普通的 hadoop map-reduce,速度是很快的,当然,可处理的数据量相对较少。
aerospike可能应用场景
aerospike总体来说是一个基于内存的并且具有高度可靠性的分布式计算系统。放在内存中是易失的,更多场景应该是放在SSD,但放在SSD其性能就不一定具有太大优势了,而且SSD存储容量小,费用也是比较贵的。
1. 替换memcache做缓存
这是由于它有强大的集群管理功能,对非常重要不能宕机的缓存服务可以采用它,但代价就是需要更多的硬件服务器。
2.性能要求很高的实时聚合计算
aerospike是一个分布式的基于内存的map-reduce服务,速度快。
一般来说,原始数据变化较频繁,而对聚合计算实时要求较高的情景可以用它。