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