键值对数据库综述与典型
KV
数据库介绍
一、键值数据库概述
键值数据库是一种非关系数据库,
它使用简单的键值方法来存储数据。
键值数据库将数
据存储为键值对集合,
其中键作为唯一标识符。
键和值都可以是从简单对象到复杂复合对象
的任何内容。
键值数据库是高度可分区的,
并且允许以其他类型的数据库无法实现的规模进
行水平扩展。
Key-Value
键值对数据模型实际上是一个映射,
即
key
是查找每条数据地址的唯一关键
字,
value
是该数据实际存储的内容。
例如键值对:
(
“
20091234
”
,
“张三”
)
,
其
key
:
“
20091234
”
是该数据的唯一入口,
而
value
:
“张三”
是该数据实际存储的内容
.Key-Value
数据模型典型
的是采用哈希函数实现关键字到值的映射
,
查询时,
基于
key
的
hash
值直接定位到数据所在
的点,实现快速查询
,
并支持大数据量和高并发查询。
二、基本原理
从
API
的角度来看,
键值数据库是最简单的
NoSQL
数据库。
客户端可以根据键查询值,
设置键所对应的值,
或从数据库中删除键。
“
值
”
只是数据库存储的一块数据而已,
它并不关
心也无需知道其中的内容;
应用程序负责理解所存数据的含义。
由于键值数据库总是通过主
键访问,
所以它们一般性能较高,
且易于扩展。
基本上所有的编程语言都带有应用在内存中
的键值对存储。
C++STL
的映射容器(
map container
)和
Java
的
HashMap
以及
Python
的字
典类型都是键值对存储。键值对存储通常都有如下接口:
-
Get( key ):
获取之前存储于某标示符
“key”
之下的一些数据,或者
“key”
下没有数据
时报错。
-
Set( key, value ):
将
“value”
存储到存储空间中某标示符
“key”
下,使得我们可以通过
调用相同的
“key”
来访问它。如果
“key”
下已经有了一些数据,旧的数据将被替换。
-
Delete( key ):
删除存储在
“key”
下的数据。
三、基本特性
键值数据库具有以下几个特性:
-
容错性
-
可扩展性