cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          NoSQL非關系型數據庫學習(四)這樣對比下HBase, Memcached, MongoDB, Redis和Solr

          Source
          http://db-engines.com/en/system/HBase%3BMemcached%3BRedis%3BSolr

          Name

          HBase  

          Memcached 

          MongoDB  

          Redis  

          Solr  

          Description

          Wide-column store based on Apache Hadoop and on concepts of BigTable

          In-memory key-value store, originally intended for caching

          One of the most popular document stores

          In-memory database with configurable options performance vs. persistency

          A widely usedenterprise search engine based onApache Lucene

          Developer

          Apache Software Foundation 

          Danga Interactive 

          MongoDB, Inc

          Salvatore Sanfilippo 

          Apache Software Foundation

          Initial release

          2008

          2003

          2009

          2009

          2004

          License

          Open Source 

          Open Source 

          Open Source 

          Open Source 

          Open Source 

          Implementation language

          Java

          C

          C++

          C

          Java

          Server operating systems

          Linux

          Linux

          Linux

          Linux

          All OS with a Java VM and a servlet container 

          Unix

          Unix

          OS X

          OS X

          Windows  

          Windows

          Windows

          Windows 

           

          FreeBSD

           Solaris

           BSD

          Database model

          Wide column store

          Key-value store

          Document store

          Key-value store 

          Search engine

          Data scheme

          schema-free

          schema-free

          schema-free 

          schema-free

          yes

          Typing 

          no

          no

          yes 

          no 

          yes 

          Secondary indexes

          no

          no

          yes

          no

          yes 

          SQL

          no

          no

          no

          no

          no 

          APIs and other access methods

          Java API

          Proprietary protocol

          proprietary protocol using JSON

          proprietary protocol

          Java API

          RESTful HTTP API

          RESTful HTTP API

          Thrift

           

          Supported programming languages

          C

          C

          C

          C#

          .Net

          C#

          C#

          .Net

          C++

          C++

          C++

          C++

          Groovy

          ColdFusion

          Groovy 

          Clojure

          Java

          Java

           Java

          Java

          Java

          Erlang

          Erlang

          Erlang

          Erlang

          Python

          Python

            Python

          Python

          Python

          Scala

          Lua

          Scala

          Scala

          Scala

           

          Ruby

           Ruby

          Ruby

          Ruby

           PHP

          PHP

          PHP

           PHP

          PHP

           

           JavaScript

          JavaScript

          JavaScript

           

          Perl

          Perl

          Perl

          Perl 

           

          OCaml

          Lua 

          Lua

           any language that supports sockets and either XML or JSON

           

           Lisp

          Lisp

          Lisp

           

           

           

           Dart 

          Dart

           

           

           

          ColdFusion 

           

           

           

           

          Go 

          Go

           

           

           

           Actionscript

          Objective-C

           

           

           

          Haskell

          Haskell

           

           

           

           Smalltalk 

          Smalltalk

           

           

           

           Clojure 

           Tcl

           

           

           

          MatLab 

           

           

           

           

          PowerShell 

           

           

           

           

          Prolog 

           

           

          Server-side scripts 

          yes 

          no

          JavaScript

          Lua

          Java plugins

          Triggers

          yes

          no

          no

          no

          no

          Partitioning methods 

          Sharding

          none

          Sharding

          none

          Sharding

          Replication methods 

          selectable replication factor

          none 

          Master-slave replication

          Master-slave replication

          cloud/distributed (via Zookeeper)

          Master-slave replication

          MapReduce

          yes

          no

          yes

          no

          no

          Consistency concepts 

          Immediate Consistency

           

          Eventual Consistency

           

          Eventual Consistency 

          Immediate Consistency 

          Foreign keys 

          no

          no

          no 

          no

          no

          Transaction concepts 

          no

          no

          no 

          optimistic locking

          optimistic locking 

          Concurrency 

          yes

          yes

          yes

          yes 

          yes

          Durability 

          yes

          no

          yes 

          yes 

          yes

          User concepts 

          Access Control Lists (ACL) 

          yes 

          Users can be defined with full access or read-only access

          very simple password-based access control

           

          Specific characteristics

           

           

           

          Redis very much emphasize performance. In any design decisions performance has priority over features or memory requirements.

          Architecture: Lives in web stack, ships by default with Jetty. Connectors, JDBC, multiple languages, true morphological CJK, binary document filters (Tika), Entity Extraction (UIMA)

          Typical application scenarios

           

          Mostly used for caching

           

          Applications that can hold all data in memory, and that have high performance requirements.

           

           


          posted on 2014-01-14 00:27 crazycy 閱讀(1841) 評論(0)  編輯  收藏 所屬分類: JavaEE技術 、DBMS

          主站蜘蛛池模板: 达孜县| 汽车| 巧家县| 历史| 锦屏县| 东丽区| 遂平县| 南川市| 海口市| 邹平县| 彭泽县| 贵溪市| 青河县| 台北市| 得荣县| 镇江市| 嘉义市| 治县。| 定州市| 盐源县| 卢湾区| 高州市| 通化县| 吉首市| 平安县| 磐安县| 宣威市| 威宁| 旅游| 通化市| 大石桥市| 册亨县| 洛川县| 乳源| 万全县| 土默特左旗| 永福县| 清流县| 宜兴市| 承德县| 盐边县|