欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-29 16:24:31
...

      本人新浪微博: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)

 

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

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Memcache Vs Neo4j对比
            
    
    博客分类: 架构