Aerospike是一个分布式,高可用的 K-V类型的Nosql数据库。提供类似传统数据库的ACID *** 作。大致功能与redis类似,但由于as是混合型内存,根据namespaces配置将常用的数据存在内存中,量大数据存储在ssd上。
2.为什么要用ASK-V类型的数据库必须要提的就是redis,redis数据完全存储在内存虽然保证了查询性能,但是成本太高。
AS最大的卖点就是可以存储在SSD上,并且保证和redis相同的查询性能。
AS内部在访问SSD屏蔽了文件系统层级,直接访问地址,保证了数据的读取速度。
AS同时支持二级索引与聚合,支持简单的sql *** 作,相比于其他nosql数据库,有一定优势,redis集群没有可视化,Aerospike有可视化控台。
主键索引是分布式哈希表技术与每个服务器中的分布式树结构的混合。名称空间中的整个键空间通过健壮的散列函数分隔到分区中。总共有4096个分区均匀地分布在集群节点上。有关哈希和分区的详细信息,请参阅数据分布。
Aerospike使用了一种被称为sprig的红黑内存结构。对于每个分区,可以有可配置的sprig数量。配置正确数量的分支是内存开销和优化的并行访问之间的权衡。
bin包含的数据类型有:
- integer double string boolen bytes
一个namespace最多有1023个set
一个namespace最多支持64块SSD
bin名字长度最多14个单字节字符
list类型中能存15,000条数据
Map类型最多能存50000条数据
namespance,Record,Index metadata
4.9版以上 则每次写入记录时都会重置TTL
3.10.1版以上可可设置更新记录时不修改TTL的策略
分片写入
Aerospike Database uses a Shared-Nothing 架构
使用Aerospike Smart Partitions™算法,数据均匀分布在集群中的所有节点上。
1.随机分配节点
这说明了一个4节点的Aerospike集群,其中每个节点是大约1/4数据的数据主节点,每个节点是1/4数据的副本。一个节点是数据主节点。数据以副本的形式分布在所有其他节点上。对于本例,如果节点1变得不可用,节点#1的副本将分散到其他节点。
1.一级索引
Primary-Index是Aerospike默认存在的,作用是加速查询和防止数据倾斜,具体原理是取每一个key做hash后,前12bit作为partitionID,所以partition的个数是固定的,4096个。
https://github.com/aerospike/aerospike-client-java/tree/master/examples
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)