下面我们展示设计一个小型的键值数据库 SimpleKV 需要考虑的范围。
一、关系型数据库存储数据转存入键值数据库
在某些应用场景中我们可以将关系型数据库存储的数据转存入键值数据库中,键值数据库其中内部的存储结构采用的是 Key-Value 的结构,而关系型数据库中则是存储类似于,人员(姓名,年龄,地址,电话,职务)这样类似的数据,就可以以人员的 ID 值作为 Key,而该人员的用户信息全部存储到一个集合中,将该集合作为 Value。这样就完成了一个存储需求。
但是键值数据库仅仅提供一些简单的操作接口,如果我们需要对全部人员的年龄计算其平均值这样的复杂的聚合函数,键值数据库是无法做到的。
二、数据模型&操作接口
(1)数据模型
通过上面的例子,我们就需要弄明白键值数据库能做什么不能做什么,这句需要我们弄清楚其键值数据库的数据模型和操作接口。
虽然键值数据库中存储的是简单的 Key-Value 的数据模型,但是其 Value 的类型则可以是多元化的,可以是整型类型,String,集合,数组,列表等。这样一来就增大了该数据库的是应用范围。一般的键值数据库支持的 Key 的类型的差异并不大,但是其支持的 Value 的类型会比较大,因此对于不同的键值数据库适用于不同的应用场景。而 Redis 键值数据库其适用范围比较广得益于其支持的 Value 的类型比较多元化。
(2)操作接口
对键值对可以做什么样的操作?
函数 |
---|