Source
http://db-engines.com/en/system/HBase%3BMemcached%3BRedis%3BSolr
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 enginebased onApache Lucene | ||||||
Developer |
Apache Software Foundation | Danga Interactive | MongoDB,Inc | Salvatore Sanfilippo | Apache Software Foundation | ||||||
Initial release |
2008 | 2003 | 2009 | 2004 | |||||||
License |
Open Source | Open Source | |||||||||
Implementation language |
Java | C | C++ | Java | |||||||
Server operating systems |
Linux | Linux | All OS with a Java VM and a servlet container | ||||||||
Unix | Unix | ||||||||||
OS X | OS X | ||||||||||
Windows | Windows | ||||||||||
FreeBSD | Solaris | BSD | |||||||||
Database model |
|||||||||||
Data scheme |
schema-free | yes | |||||||||
Typing |
no | yes | Secondary indexes | sql | 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# | .Net | .Net | |||||||||
C++ | |||||||||||
Groovy | ColdFusion | Clojure | |||||||||
Java | |||||||||||
Erlang | Erlang | ||||||||||
Python | Python | ||||||||||
Scala | Lua | Scala | |||||||||
Ruby | Ruby | ||||||||||
PHP | PHP | ||||||||||
JavaScript | JavaScript | ||||||||||
Perl | Perl | ||||||||||
OCaml | any language that supports sockets and either XML or JSON | ||||||||||
Lisp | |||||||||||
Dart | Go | Actionscript | Objective-C | Haskell | Smalltalk | Clojure | Tcl | MatLab | PowerShell | Prolog | |
Server-side scripts |
Java plugins | ||||||||||
Triggers |
no | ||||||||||
Partitioning methods |
Sharding | none | Sharding | ||||||||
Replication methods |
selectable replication factor | Master-slave replication | Master-slave replication | cloud/distributed (via Zookeeper) | |||||||
Master-slave replication | |||||||||||
MapReduce |
Consistency concepts | Immediate Consistency | Eventual Consistency | Eventual Consistency | |||||||
Immediate Consistency | |||||||||||
Foreign keys |
Transaction concepts | no | optimistic locking | optimistic locking | |||||||
Concurrency |
Durability | User concepts | Access Control Lists (ACL) | 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. |