3、HBase是个仗势欺人的大象兵。依仗着Hadoop的生态环境,可以有很好的扩展性。
  但是像象兵一样,使用者需要养一头大象(Hadoop),才能驱使他。
  4、Redis是键值存储的代表,功能简单。提供随机数据存储。
  像一根棒子一样,没有多余的构造。但是也正是因此,他的伸缩性特别好。像悟空手里的金箍棒,大可捅破天,小能成缩成针。
  针对这两个梦魇。文档数据库如MongoDB的的主要目的是 提供更丰富的数据结构来抛弃Join来适应在线业务。当然也不是MongoDB完全不能用Join,不能拿来做数据分析,讨论这个只是见仁见智的问题。所以文档数据库并不比关系数据库强大,由于对Join的弱支持,功能会弱许多。设计关系模型的时候,通常只需要考虑好数据直接的关系,定义数据模型。而设计文档数据库模型的时候,还需要考虑应用如何使用。因此设计好一个的文档数据库Schema比设计关系模型更加的困难。除此之外,由于文档数据库事务的支持也是比较弱,一般NoSQL只会提供一个行锁。这也给设计Schema更加增加了难度。对于文档数据库的使用有很多需要注意的地方,本文只关注模型设计的部分。
  Nosql数据库的特点:
  1、满足极高读写性能需求的Kye-Value数据库
  2、满足海量存储需求和访问的面向文档的数据库
  面向文档的非关系数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。
  文档数据库实际上是更高级的键/值(Key/Value)数据库,允许在每个键上关联嵌套的值.相对于每次简单地返回整个BLOB(二进制对象)来讲,文档数据库支持更高效的查询.
  3、满足高可扩展性和可用性的面向分布式计算的数据库
  分布式的数据库系统,由分布在不同节点上面的数据库共同构成一个数据库服务系统,具有弹性的可扩展能力,例如可以不停机的添加更多数据节点,删除数据节点等等。
  4、数据存储不需要固定的表结构,每个记录之间的列没有任何限制。通常也不存在连接操作。
  5、可以运行在便宜的PC服务器集群上。