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 |
@H_301_6@
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 | @H_301_6@ Developer |
Apache Software Foundation | Danga Interactive | MongoDB,Inc | Salvatore Sanfilippo | Apache Software Foundation | @H_301_6@ Initial release |
2008 | 2003 | 2009 | 2004 | @H_301_6@ License |
Open Source | Open Source | @H_301_6@ Implementation language |
Java | C | C++ | Java | @H_301_6@ Server operating systems |
Linux | Linux | All OS with a Java VM and a servlet container | @H_301_6@Unix | Unix | @H_301_6@OS X | OS X | @H_301_6@Windows | Windows | @H_301_6@FreeBSD | Solaris | BSD | @H_301_6@ Database model |
@H_301_6@ | Data scheme |
schema-free | yes | @H_301_6@ Typing |
no | yes | Secondary indexes | sql | no | @H_301_6@ APIs and other access methods |
Java API | Proprietary protocol | proprietary protocol using JSON | proprietary protocol | Java API | @H_301_6@RESTful HTTP API | RESTful HTTP API | @H_301_6@Thrift | @H_301_6@ | Supported programming languages |
C | @H_301_6@C# | .Net | .Net | @H_301_6@C++ | @H_301_6@Groovy | ColdFusion | Clojure | @H_301_6@Java | @H_301_6@Erlang | Erlang | @H_301_6@Python | Python | @H_301_6@Scala | Lua | Scala | @H_301_6@Ruby | Ruby | @H_301_6@PHP | PHP | @H_301_6@JavaScript | JavaScript | @H_301_6@Perl | Perl | @H_301_6@OCaml | any language that supports sockets and either XML or JSON | @H_301_6@Lisp | @H_301_6@ | Dart | Go | Actionscript | Objective-C | Haskell | Smalltalk | Clojure | Tcl | MatLab | PowerShell | Prolog | @H_301_6@ | Server-side scripts |
Java plugins | @H_301_6@ Triggers |
no | @H_301_6@ Partitioning methods |
Sharding | none | Sharding | @H_301_6@ Replication methods |
selectable replication factor | Master-slave replication | Master-slave replication | cloud/distributed (via Zookeeper) | @H_301_6@Master-slave replication | @H_301_6@ MapReduce |
Consistency concepts | Immediate Consistency | Eventual Consistency | Eventual Consistency | @H_301_6@Immediate Consistency | @H_301_6@ Foreign keys |
Transaction concepts | no | optimistic locking | optimistic locking | @H_301_6@ 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) | @H_301_6@ Typical application scenarios |
Mostly used for caching | Applications that can hold all data in memory,and that have high performance requirements. |