Name | HBase | Memcached | 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. |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。