Aerospike系列:3:aerospike特点分析

2022-04-14 00:00:00 数据 集群 放在 内存 聚合

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服务,速度快。
    一般来说,原始数据变化较频繁,而对聚合计算实时要求较高的情景可以用它。

相关文章