键值数据模型的主要思想来自于哈希表。单纯的键值存储模型弱化了数据结构,如果需要对数据结构内部进行属性的访问或修改等操作,则需要另外实现。通常,键值数据模型数据库只提供像Get、Set这样的操作。


键值模型对于海量数据存储系统来说,最大的优势在于数据模型简单、易于实现非常适合通过key对数据进行查询和修改等操作。但是如果整个海量数据存储系统需要更侧重于批量数据的查询、更新操作,键值数据模型则在效率上处于明显的劣势。同样的,键值存储也不支持逻辑特别复杂的数据操作。


基于键值模型的高性能海量数据存储系统的主要特点是具有极高的并发读写性能,如Redis在系统效率上具有出色的表现。此外如Dynamo、Voldemort还具备分布式数据存储功能,在系统容错性、扩展性上具有自己的特色。


Redis本质上是一个键值模型的内存数据库,性能非常出色,每秒可以处理超过10万次读写操作。最大的特色是支持诸如链表和集合这样的复杂数据结构,而且还支持对链表进行各种操作。主要缺点是数据库容量受到物理内存的限制,并且没有原生的可扩展机制,要依赖客户端来实现分布式读写。因此,Redis适合的场景主要局限在较小数据量的高性能操作和运算上。


Dynamo是一个专门为Amazon平台而设计的高度可用、可升级的分布式数据存储中心。它并没有公开技术文档与源代码。Dynamo运用了很多已经很成熟的技术,并将其综合起来以实现可升级性和可用性。使用一致哈希技术分割和复制数据,并且使用对象版本控制技术保持数据一致性。在数据更新期间,复制操作之间的一致性是由多数表决技术和分布的复制一致性协议来实现的。使用基于互播的分布式错误检测和成员关系的协议。