HBase, Memcached, MongoDB, Redis和Solr对比

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    
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.

你可能感兴趣的:(HBase, Memcached, MongoDB, Redis和Solr对比)