博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Aerospike 数据关系模型
阅读量:7227 次
发布时间:2019-06-29

本文共 1396 字,大约阅读时间需要 4 分钟。

  hot3.png

Namespaces(命名空间)

命名空间(namespace)是数据最顶层的容器。就像在标准的RDBMS中一样,namespace可以是数据库的一部分也可以是一组数据库,这决定于你如何存储和管理namespace中的数据。

一个namespace包含记录(records),索引(indexes )及策略(policies)。策略决定namespace的行为,包括:

  • 数据如何存储:存储于内存或是磁盘

  • 一条记录存在多少个副本

  • 记录何时过期

根据应用程序的需要,一个数据库可能包含多个不同策略的多个namespace。namespace被认为是一个物理容器,因为其中的数据必须绑定存储设备,存储设备可能是内存、磁盘或者是文件。

Sets(集合)

在命名空间(namespace)中,记录可以属于一个称作集合(set)的逻辑容器。集合(set)为应用程序提供了收集记录组的能力。集合(set)继承了包含它的namespace的策略,也可为set指定其他的策略

Records(记录)

Aerospike数据库是行存储的所以焦点是独立的记录(在标准RDBMS中称作行)。记录是数据库存储的基本单元。行属于某个namespace或者某个namespace中的set。记录通过namespace中定义的唯一key来访问。

记录的组成如下:

组成 描述

key 记录是通过一个哈希键进行访问的,称作摘要

metadata 元数据提供记录的版本信息(代)以及活动时间(ttl)

bins (fields) bin相当于传统数据中的字段

Key / Digest

应用程序中,每一条记录都有一个用来访问它的key。应用程序通过key来读写记录。

当key被发送至数据库,key(与set信息一起)被哈希化成一个160位的摘要。数据库中,摘要为所有操作定位记录。

key主要用于应用程序访问,而摘要主要用于数据库定位记录。

key可能是整型,字符串或者二进制。细节请参阅Data Types.

Metadata(元数据)

每条记录与描述它自身的元数据一块存储,包括下列事物:

generation(代)反映记录被修改的次数。这个数字在应用程序读的时候交回,用来确定正在写入的数据从最后一次读开始未被修改过。

存活时间 (TTL) 用来指定记录生存多长时间。Aerospike会自动依据记录的TTL使其过期。每次在对象上执行写操作TTL就会增加

Bins

在记录(record)中数据被存储于一个或多个bin。一个bin有名字和值组成。bin不指定类型,类型由bin中包含的值定义。

动态类型为数据模型提供了很大的弹性。例如,一条记录中包含值为字符串"bob"名称为 "id"的bin。bin的值可以变成不同的字符串值,也可以变为其他类型的值,比如整型的72.

namespace或set中的记录可能由迥然不同的bin的集合组成。记录无模式,所以每条记录拥有完全不同的bins是有可能的。在记录的生命周期中的任何时点都可以添加或移除bin

在一个namespace钟bin名称的数量是有限制的。最多32k个唯一bin名称。

bin的值可能是任意原生支持的类型(native supported types)和LDTs.、

转载于:https://my.oschina.net/88sys/blog/533234

你可能感兴趣的文章
19-04-25
查看>>
一个JAVA程序员成长之路分享
查看>>
30K iOS程序员的简述:如何快速进阶成为高级开发人员
查看>>
Go 夜读 - 每周四晚上 Go 源码阅读技术分享
查看>>
tranform知多少
查看>>
Android电量优化
查看>>
[爬虫手记] 我是如何在3分钟内开发完一个爬虫的
查看>>
【译】Css Grid VS Flexbox: 实践比较
查看>>
iOS 开发知识索引
查看>>
Linux iptables命令
查看>>
webpack的使用
查看>>
干货 | 基于Go SDK操作京东云对象存储OSS的入门指南
查看>>
D3.js入门
查看>>
一次和前端的相互甩锅的问题记录
查看>>
纯OC实现iOS DLNA投屏功能了解一下
查看>>
RxJava -- fromArray 和 Just 以及 interval
查看>>
LC #75 JS
查看>>
js正则验证代码库
查看>>
常见面试题—css实现垂直水平居中
查看>>
lc682. Baseball Game
查看>>