`
guoyunsky
  • 浏览: 858991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:207189
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Memcache Vs Neo4j对比

 
阅读更多

      本人新浪微博:http://weibo.com/guoyunwb

 

       SQL已经风靡了15年,但似乎好日子就要结束.似乎说的有点危言耸听,但这只是时间问题.

       NoSQL和SQL之间有个区别是NoSql的产品远比SQL要多很多,这也意味着,这对架构师来说是一个很大的责任,因为他们需要从中选择一个合适的产品.

 

         这里将对比下 CassandraMongodbCouchDBRedisRiakMembaseNeo4j 以及HBase

 

1.MongoDB

开发语言:C++

要点:介于SQL和NoSql之间的产品,保留了SQL的一些特性,如查询和索引

许可:AGPL

协议:自定义,二进制(BSON) 

优点和缺点:

1)主从复制(自动故障转移)

2)内置Sharding分片功能

3)查询为javascript表达式

4)可以执行任意serer-side的javascript

5)update-in-place支持比CouchDB更好

6)可以通过memory mapped files(内存映射文件)来保存数据

7)性能优于特性

8)Journaling最好打开(通过-journal)

9)在32位的操作系统上,数据文件大小不能超过2.5G

10)一个空的数据库也会占据192M的磁盘空间

11)通过GridFS文件系统去存储大数据和元数据,不是一般的文件系统.

12)支持索引

适用:

如果你想动态查询,索引比map/reduce更合适.面对大数据有更好的性能.如果你想使用CounchDB,但需要实时写数据并刷新到硬盘,那MongoDB更适合

使用场景:

Mysql,PostgreSQL能够用到的场景,同时你的列并不固定的时候可以使用.

 

2.Riak(V1.0)

 

开发语言:Erlang+C+一些javascribpt

要点:高容错性

许可:AGPL

协议:HTTP/RESTful或者自定义二进制 

优点和缺点:

1)可调节的分布式分发以及复制

2)用JavaScript和Erlang后台自动推送进行验证和安全

3)可以通过JavaScript和Erlang写MapReduce

4)可以用来作为图形数据库

5)同时只能有一个Secondary

6)大数据支持(Luwak)

7)提供开源和收费两个版本

8)可以通过Riak Search Server来提供全文检索和索引,查询服务

9)后台存储从Bitcask迁移到Google的LevelDB

10)支持Masterless多点赋值以及有SNMP授权的监控服务

适用:

如果你想拥有Cassandra的特性,并且还想有bloat以及complexity特性.同时在你只有单台机器有更好的扩展性,容错性,可用性,以及将来可以无缝扩展到多台机器那推荐使用Riak

使用场景介绍:

销售数据集,工厂控制系统,对宕机时长有严格要求,易于更新的webserver

 

3.CouchDB(V1.1.1)

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics