MongoDB vs Redis vs HBase

当SQL无法满足我们的需求或者SQL已经不是必须的或者最佳的选择时,就可以考虑NoSQL了。

MongoDB是文档型数据库,使用bson结构,可以更加灵活的处理嵌套结构的数据,是这三个里最接近关系型数据库的,有着非结构化、方便扩充字段、写性能优于mysql等优点,万物皆有利弊,MongoDB是内存性缓存内容,使其速度飞快;带来内存占用率高,掉电丢数据等问题,加上自身代码还有很多bug造成不如老牌关系型数据库稳定,特别是主从等分布式环境下,其设计也带来诸多问题。

Redis是K-V型数据库,目标是为了做高效的分布式缓存,数据一般不需要要实时落盘,不适合做存储和分析。可以认为Redis是一个小而美的数据库,主要用在key-valu的内存缓存,读写性能极佳,string, list、set、sorted set(zset)等几种简单的结构使其使用很简单。缓存及使用简单是Redis的定位,分布式redis的出现,让redis更加广泛的使用。

HBase是列式数据库,BigTable的一种实现方式,目标是高效存储大量数据,支持列压缩,行事务,适合Schema-less的数据。定位非结构化的大数据,可伸缩性好,并不是完全高可用,底层依靠Hadoop提供的HDFS,使用时有一整套zookeeper,pig,hive的生态系统。Cassandra可以算是一个竞争对手,但是Cassandra去中心化的自适应结构又跟HBase中心化的生态系统完全不同。

存储类型解决方案代表特点
列存储Hbase, Cassandra, Hypertable按列存储,适应于数据库压缩,对一个或几个字段进行查询的效率很高
文档存储MongoDB, CouchDB, Riak保证海量数据存储的同时,具有良好的查询性能。用类Json格式进行存储
key-value存储Dynamo, Redis, Tokyo Cabinet, MemcacheDB具有极高的并发读写性能,通过key迅速查到value,但只能通过可以查询
图数据库Neo4j, HyperGraphDB图形关系的最佳存储模式
对象数据库db4o, Versant类似面向对象语言的语法操作数据库,通过对象的方式存储数据
XML数据库Berkerey DB XML, BaseX高效存储XML数据,并支持XML的内部查询语法

参考文献:LiveToolkit

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值