Aerospike-介绍
近期在做实时指标平台,我们的实时指标数据是存储在aerospike上的。下面就介绍下它的特性
aerospike总体来说是一个基于内存的并且具有高度可靠性的分布式计算系统
架构
客户端层
这一层包括带有AerospikeAPI的开源客户端库和能够感知数据在Aerospike集群中位置的追踪节点。
集群和数据分布层
这一层监控集群通讯并提供一些自动化功能,比如故障转移、数据复制和跨数据中心同步。
数据存储层
这一层负责在DRAM(动态随机存取存储器)和Flash(闪存)中存储数据。
数据模型
Namespaces
类似于database
Sets
类似于RDBMS的table。
Records
key
- 唯一标识. 根据key的hash查询Records
- key的类型:Integers, String, and bytes
- 内部会hash成一个 160-bit(20-bytes) 的digest
metadata
- generation,类似version
- time-to-live (TTL)
- last-update-time (LUT)
bins
- 类型于RDBMS的列
- 数据类型
- integer: 8 bytes
- string: 128 KB;
- bytes
- double: 8 bytes
- CDTs (Complex Data Types)
- list
- map
- GeoJSON (3.7.0+)
- native-languages serialized(blobs)
特点
数据存放
数据可以放内存,也可以放SSD。
数据放内存时速度肯定会很快,但这和memcache一样,相比memcache性能并没有优势
数据也可以放SSD,并做了特定优化,相比mysql会更快,但数据操作模型过于简单,可使用场景很少。也比mongo性能更好,但其要求SSD存储,这样容量较小,费用也较高,这时mongo是好选择数据操作模型
支持 按主键及二级索引筛选数据
支持 聚合 (强大,一个卖点)
不支持排序(通过聚合功能的lua脚本也可能可以实现,但并不现实)
虽然支持类SQL语法操作,但可进行的操作非常简单,好于memcache, 稍好于mongo,比redis差些,跟mysql完全没法比,但其聚合功能还比较强大。集群管理
相当强大,多个平等的结点,平摊存储所有数据,并且互相备份。集群结点的失效及添加完全自动化处理,不影响用户请求。
相比memcache,这是它强大的地方,也不会弱于其它nosql的集群管理。聚合功能
这里聚合的概念等同于mysql中的聚合。可以通过编写lua脚本,实现对数据的聚合,此时aerospike可以看作一个分布式的基于内存的map-reduce计算平台,相比普通的hadoop map-reduce,速度是很快的,当然,可处理的数据量相对较少。事务
支持行事务
坑点
- 只支持batch read,不支持batch writes
- 记录大小有限制: <= 1M => 有点小,不过对于我们的场景基本没问题
- bin name长度: <= 14 Chars => 一般来说单字段不会超过,嵌套属性如果拼接就很容易超长
- 没有内建的聚合函数(Aggregations: count, max, min, sum, group by, etc.),通过UDFs可以支持(queryAggregate),但是使用方式不友好,效率也不高
- namespace 下的sets限制1024,二级索引限制256,唯一binname限制32K,一个namespace下最多4 billion记录
- 范围查询只支持BETWEEN语句,没有小于,大于查询,并且RANGE结果只支持包含
- 范围查询只支持整数类型,不支持浮点数
- Query不支持分页(no cursor or pagination..)
- Query不支持排序(no order by..)
- 不支持动态创建namespace,只能通过修改配置文件、重启服务器
- 只有清空set数据接口,但是并没有真正drop掉sets(会留下empty set,然后一个namespace下只有有1024个sets..)
为什么选用aerospike
与redis相比
- redis单线程处理
- redis集群部署比较复杂
- redis有严重的磁盘碎片问题
- 节点扩展不方便
与memcache相比
- memcache不支持持久化
- memcache只支持string类型数据
- 不支持事务
- memcache集群管理差
适用场景
替换memcache做缓存
这是由于它有强大的集群管理功能,对非常重要不能宕机的缓存服务可以采用它,但代价就是需要更多的硬件服务器。性能要求很高的实时聚合计算
aerospike是一个分布式的基于内存的map-reduce服务,速度快。一般来说,原始数据变化较频繁,而对聚合计算实时要求较高的情景可以用它。
安装管理
安装
配置
管理
Aerospike-介绍相关推荐
- Aerospike NoSQL 数据库介绍
特点: 1. 键值存储, 内存 + 闪存(SSD) 存储数据,官方承诺查询 速度99% 达到1ms 低延迟和高吞吐量而闻名,已经用于许多大型的.要求堪称苛刻的实时平台 2. 数据结构相对简单(意思是说 ...
- Aerospike使用介绍
关于 Aerospike Aerospike 服务器向外扩展,形成一个无共享的集群,透明地对数据进行分区,并跨节点并行处理数据.集群中的节点都是相同的:您可以从使用两个硬件开始,随后添加更多的硬件.集 ...
- Prometheus介绍
一.Prometheus介绍 Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会 ...
- Aerospike - 安装以及入门知识
Docker安装Aerospike Aerospike镜像下载,安装指定版本(4.0.0.5) docker pull aerospike:4.0.0.5 C:\Users\guoyu.huang&g ...
- 数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复“数据库2018”下载典藏版PDF报告)
数据简化社区2018年全球数据库总结及18种主流数据库介绍(公号回复"数据库2018"下载典藏版PDF报告) 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读: ...
- AeroSpike基本原理及概念
说明:分两篇介绍,第一篇为基本概念介绍,第二篇为Java客户端操作. 1.什么是AeroSpike? Aerospike是一个分布式,可扩展的NoSQL数据库.T级别大数据高并发的结构化数据存储解 ...
- aerospike小白老手都爱的使用经验
简单介绍 aerospike目前有开源版本和企业版本,aerospike主要分为三部分aerospike-server.aerospike-tools.aerospike-amc. aerospike ...
- Aerospike基础知识
Aerospike基础知识 介绍 Aerospike是一个分布式,可扩展的NoSQL数据库.该架构有三个主要目标: 为Web级应用程序创建灵活,可扩展的平台. 提供传统数据库所期望的稳健性和可靠性(如 ...
- AeroSpike基本应用
说明:分两篇介绍,第一篇为基本概念介绍,第二篇为实际应用:该篇为应用部分. 1.常用操作命令 Aerospike提供一套类SQL操作,和Mysql语法极其相似(命令解析参考注释),在安装aeros ...
- Guava Cache介绍
1.缓存回顾: 使用场景:互联网,数据越来越多,用户越来越多,并发量.吞吐量越来越大 使用数据库存储,分库分表,也不能满足要求,使用缓存,减轻数据库的压力 临时存储的数据 其他的场景:Session分 ...
最新文章
- 从iOS证书申请到签名文件生成
- python播放音频及playsound模块解除占用的3种方法
- postgresql GUC 参数
- int a [] = {1,2,}; 允许使用怪异的逗号。 有什么特殊原因吗?
- SpringMVC 全局异常处理,返回json
- 电大法学本科计算机考试题,电大法学本科计算机形成性考核作业
- 数据结构练习 00-自测3. 数组元素循环右移问题 (20)
- python 速成学堂_Python 与数据科学入门
- 斯威夫特山地车_斯威夫特字典
- 2021十大运动蓝牙耳机品牌推荐,平价真无线蓝牙耳机运动无拘束
- Java 拦截器自定义(添加响应头)
- 监控易:智慧高校一体化综合运维解决方案
- Java 常见面试题
- Android使用LAME Mp3编码
- 全文检索四种技术解决方案
- 802.11 Tx Rate Control
- java ready()_Java BufferedReader ready()用法及代码示例
- 古墓丽影10linux,《古墓丽影11:暗影》Linux平台与Windows平台流畅度对比
- html怎么用img添加图片,img标签(html怎么用img添加图片)
- 金融分析与风险管理——资本资产定价模型