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服務,速度快。
一般來說,原始數據變化較頻繁,而對聚合計算實時要求較高的情景可以用它。