数据库-1-几种NoSQL数据库的不同定位

当SQL满足不了你的需求或者SQL 已经不是必须的或者最佳的选择时,就是你考虑这类NoSQL 的时候了。

当你的内存大于你的数据时,schema也不是太确定时,mongodb在这里静静地等待;当你唯一追求的就是速度,又对memcached的过于简单心存芥蒂,刚好内存也比数据多时,redis俏生生站在那里;数据太大了,估计就没有选择综合症了,HBase成了唯一或者唯二选择了。

所以呢,不严谨地讲,Redis定位在"快",HBase定位于"大",mongodb定位在"灵活"。NoSQL的优点正好就是SQL的软肋,而其弱点正好也就是SQL的杀手锏。

(1)mongodb
数据库-1-几种NoSQL数据库的不同定位
数据库-1-几种NoSQL数据库的不同定位
定位是取代关系型数据库,想当一个主流数据库。因为具有非结构化、方便扩充字段、写性能优于mysql。万事万物有利有弊,mongodb的内存型缓存内容,让其速度飞快,带来内存率多,掉电数据问题等,加上自身代码还有很多bug带来不如老牌关系型数据库稳定,特别是在主从等分布式环境,其设计也带来诸多问题。

(2)redis
数据库-1-几种NoSQL数据库的不同定位
数据库-1-几种NoSQL数据库的不同定位
是一个小而美的数据库,主要用在key-value 的内存缓存,读写性能极佳,list,set,hash等几种简单结构使得使用也很简单。缓存与简单是其定位,分布式redis架构的出现,让redis更加广泛的使用,稳坐缓存第一把交椅。

(3)hbase
数据库-1-几种NoSQL数据库的不同定位数据库-1-几种NoSQL数据库的不同定位定位非结构化大数据,可伸缩性好,并不是完全高可用,底层依靠hadoop提供的HDFS,使用时有一整套zookeeper,pig,hive的生态系统。Cassandra可以算一个竞争对手,但Cassandra去中心化的自适应结构又跟Hbase中心化的生态系统完全不同。

总结一句:在一般使用情况下,mongodb可以当作简单场景下的但是性能高数倍的MySQL, Redis基本只会用来做缓存,HBase用来做离线计算。