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 |
Wide column store |
Key-value store |
Document store |
Search engine |
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. |