按照存储模型来说分为以下4类。
- 键值存储
- 列式存储
- 文档存储
- 图形存储
键值模型
键值数据模型的主要思想来自于哈希表:在哈希表中有一个特定的key和一个value指针,指向特定的数据。键值模型对于海量数据存储系统来说,最大的优势在于数据模型简单,易于实现,非常适合通过key对数据进行查询和修改等操作。但是若对整个海量数据存储系统需要更侧重于批量数据的查询,更新操作,键值数据模型则在效率上处于明显的不足。同样的,键值存储不支持特别复杂逻辑的数据操作。
1)Redis
Redis在本质上是一个键值模型的内存数据库,整个数据库加载在内存中进行数据操作,并定期通过异步操作把数据库数据写回到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。Redis的出色之处不仅仅是性能,其最大特色是支持诸如链表和集合这样的复杂数据结构,而且还支持对链表进行各种操作。
主要缺点是:数据库容量受到物理内存的限制,不能简单地用作大量数据的高性能读写,而且他没有原生的可扩展机制,不具有可扩展能力,要依赖于客户端来实现分布式读写。因此,Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
redis数据结构底层原理可以参考:redis底层原理
2)Dynamo
Dynamo是Amazon提出的一个分布式键值存储系统,它具有高度可用,可升级的分布