8 Kinds of NoSQL database system comparison (turn)-Oak_sun

Source: Internet
Author: User
Keywords Copy Nbsp; java


1. CouchDB


language: Erlang features: DB consistency, easy to use license: Apache protocol: http/rest bidirectional data replication, continuous or temporary processing, processing with conflict checking, therefore, the use of Master-master replication (see note 2) mvcc– Write does not block read operations pre-save file version crash-only (reliable) design requires data compression view: Embedded mapping/Reduce formatted view: List display support for server-side document validation support for authentication based on change real-time update support attachment processing therefore, Couchapps (standalone JS application) requires jquery library





Best Practice Scenario: Application for less data changes, execution of predefined queries, and data statistics. Applies to applications that need to provide support for a data version.



For example: CRM, CMS system. Master-master replication is useful for multi-site deployments.



(2:master-master replication: A database synchronization method that allows data to be shared between groups of computers and can be updated in a group by any member of the team.) )






2. Redis


languages: C/S + + features: Run abnormally fast License: BSD protocol: Class Telnet has hard disk storage supported memory database, but since version 2.0 can exchange data to the hard disk (note, after 2.4 version does not support this feature!) Master-slave Replication (see note 3) uses simple data or hash tables indexed by key values, but also supports complex operations, such as Zrevrangebyscore. INCR & Co (for computing limits or statistics) supports the sets (also supports Union/diff/inter) support list (also supports queues; blocking pop operations) supports sorting sets (high score table, For scope queries Redis support transaction support sets data to expired data (similar to fast buffer design) pub allows users to implement message mechanisms





Best Practice Scenario: Applications that are suitable for fast data changes and that database sizes can be met (for memory size).



For example: stock price, data analysis, real-time data, real-time communication.



(3:master-slave replication: If only one server handles all replication requests at the same time, this is called Master-slave replication, and is often applied to server clusters that require high availability.) )






3. MongoDB


Language: C + + features: Keep SQL some friendly features (query, index). License: AGPL (initiator: Apache) protocol: Custom, Binary (Bson) Master/slave Replication (support for automatic error recovery, using sets replication) built-in partitioning mechanism supports JavaScript expression queries to execute arbitrary JavaScript function Update-in-place support is better than couchdb to use memory to file mapping in data storage more attention to performance than functional requirements it is advisable to turn on the log function (parameter –journal) on a 32-bit operating system. The database size is limited to about 2.5Gb of empty databases about 192Mb using GRIDFS to store large data or meta data (not real file systems)





Best Practice Scenario: For dynamic query support, indexing rather than map/reduce features, performance requirements for large databases, and applications that use COUCHDB but are full of memory because data changes too frequently.



For example, you would have intended to use MySQL or PostgreSQL, but because of their own predefined bars you are discouraged.






4. Riak

Languages used in


: Erlang and C, and some JavaScript features: Fault tolerant use license: Apache protocol: http/rest or custom binary adjustable distribution and replication (N, R, W) with JavaScript or Erlang authenticates and security support before or after operation. Use JavaScript or Erlang for map/reduce connections and connection traversal: You can use indexes as a graphics database: Enter metadata for searching (version 1.0 will support) large data object Support (Luwak) provides "open source" and "Enterprise" Two versions full text search, index, Support for masterless multi-site replication and commercially licensed SNMP monitoring via Riak Search Server query (Beta)





Best practice scenario: For situations where you want to use a database similar to Cassandra (similar to dynamo) but cannot handle bloat and complexity. Applies to situations where you intend to replicate multiple sites, but require scalability, availability, and error handling for a single site.



For example: Sales data , factory control system, strict requirements for downtime, can be used as a Web server for easy updating.



5. Membase


languages: Erlang and C Features: compatible with Memcache, but both persistent and support cluster License: Apache 2.0 Protocol: Distributed caching and extension very fast (200k+/seconds), through key-value index data can be persisted to the hard disk all nodes are unique ( Master-master replication) In memory also supports caching unit similar to distributed cache write data by removing duplicate data to reduce IO provides very good cluster Management web interface update software without stopping database services support connection pooling and multiplexing connection agents





Best scenario for applications that require low latency data access, high concurrency support, and high availability



For example: Low latency data access such as ad-targeted applications, high concurrent Web applications such as online games (Zynga, for example)






6. neo4j


language: Java features: Relational graphics database License: GPL, some of which use agpl/Commercial license Agreement: Http/rest (or embedded in Java) can be used independently or embedded in Java application graphics nodes and edges can have metadata very good with the Web management function using multiple algorithms to support path search using key values and relationships to index for read operations optimizing support transactions (with Java APIs) using Gremlin graphics traversal language support Groovy Scripts Support Online backup, advanced monitoring and high reliability support using agpl/commercial license





Best Application Scenario: Suitable for graphic type data. This is the most significant difference between neo4j and other NoSQL databases



For example: social relations, public transport networks, maps and network extension






7. Cassandra


Language: Java features: The best support for large tables and Dynamo license: Apache protocol: Custom, Binary (economized) adjustable distribution and replication (N, R, W) supports the ability to query a large table by column with a range of key values: columns, The column collection writes for an attribute are faster than read operations based on the Apache distributed platform as much as possible map/reduce I admit bias against Cassandra, partly because of its bloated and complex nature, and because of Java problems (configuration, anomalies, etc.)





Best scenario: When using write-over-read operations (logging) If each system build must be written in Java (no one is fired for choosing Apache software)



For example: Banking, finance (although not necessary for financial transactions, but these industries require more databases than they do) write faster than read, so a natural feature is real-time data analysis






8. HBase



(with Ghshephard)


language: Java features: Support billions of lines x millions of licenses: Apache protocol: http/rest (support Thrift, see note 4) After bigtable modeling using distributed architecture Map/reduce optimize the performance of real-time query The Thrift Gateway supports XML, PROTOBUF, and binary httpcascading, hive, and pig source and sink modules based on Jruby ( JIRB) shell for configuration changes and minor upgrades will be rolled back without a single point of failure comparable to MySQL's Random access performance





Best Practice Scenario: Suitable for preference bigtable: and requires random, real-time access to large data.



For example: Facebook message database (more generic use cases coming soon)


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.