NoSQL非關系型數據庫學習(四)這樣對比下HBase, Memcached, MongoDB, Redis和Solr
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 |
||||||
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. |
|
posted on 2014-01-14 00:27 crazycy 閱讀(1841) 評論(0) 編輯 收藏 所屬分類: JavaEE技術 、DBMS