8 Kinds of NoSQL database system comparison (turn)

Source: Internet
Author: User
Keywords nbsp copy apply to

Comparison of 8 kinds of NoSQL database systems


Original: Kristóf Kovács Editor: Agile translation: Tang Yuhua





share: More: Kristóf Kovács is a software architect and consultant who recently released an article comparing various types of NoSQL databases. The article is compiled by Agile translation-Tang Yuhua.  If you want to reprint, please refer to the text after the declaration.





Although SQL database is a very useful tool, the monopoly is about to be broken after 15 years of a solo show.  It was only a matter of time: forced to use relational databases, but found that the inability to adapt to demand was too numerous.





But the difference between the NoSQL databases is much more than the difference between two SQL databases. This means that the Software architect should choose a suitable NoSQL database at the beginning of the project. In this context, comparisons are made for Cassandra, Mongodb, CouchDB, Redis, Riak, Membase, neo4j, and HBase:





(Note 1:nosql: A new revolutionary database campaign, NoSQL advocates for the use of non relational data storage. Today's computer architectures require a huge level of scalability in data storage, and NoSQL is committed to changing the status quo. Google's BigTable and Amazon's Dynamo are using NoSQL databases. See also NoSQL entry. )











1. CouchDB





language: Erlang


Features: DB consistency, easy to use


use license: Apache


protocol: Http/rest


bidirectional data replication,


continuous or temporary processing,


process with conflict checking,


• Therefore, the use of Master-master replication (see note 2)


mvcc– Write operations do not block read operations


The version before the file can be saved


crash-only (reliable) design


need to compress data


View: Embedded mapping/Reduce


formatted view: List display


support for server-side document validation


Support Certification


update
based on changes in real time

support Attachment handling


Therefore, Couchapps (standalone JS application)


need 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





Language: C + +


Features: Run abnormally fast


License: BSD


protocol: Class Telnet


Memory Database with hard disk storage support,


• However, the data can be exchanged to the hard disk after version 2.0 (note that the feature is not supported after version 2.4). )


master-slave Copy (see note 3)


uses simple data or hash tables indexed by key values, but it also supports complex operations, such as Zrevrangebyscore.


INCR & Co (suitable for calculating limit or statistic data)


supports sets (also supports Union/diff/inter)


Support list (also supports queues; blocking pop operations)


supports a hash table (objects with multiple domains)


Support Sort sets (high score table, applicable to range query)


Redis Support Transaction


supports setting data to expiration data (similar to fast buffer design)


Pub/sub allows users to implement message mechanisms








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





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, which is often applied to server clusters that require high availability. )











3. MongoDB





Language: C + +


Features: Keep SQL some friendly features (query, index).


License: AGPL (originator: Apache)


• Agreement: Custom, Binary (Bson)


master/slave Replication (supports automatic error recovery with sets replication)


of
partition mechanism

supports JavaScript expression queries


can execute arbitrary javascript functions on the server side


Update-in-place support is better than COUCHDB


memory to file mapping in data storage


performance concerns over functional requirements


It is advisable to turn on logging (parameter –journal)


on 32-bit operating systems, the database size is limited to about 2.5Gb

The
empty database accounts for approximately 192Mb


uses GRIDFS to store large data or metadata (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 the data changes too often.





For example: You were going to use MySQL or PostgreSQL, but because of the predefined bars that they brought you, you were deterred.











4. Riak





languages: Erlang and C, and some JavaScript


Features: Fault-tolerant capability


use license: Apache


Protocol: http/rest or custom binary


• Adjustable distribution and replication (N, R, W)


uses JavaScript or Erlang for authentication and security support before or after operation.


uses JavaScript or Erlang for Map/reduce


Connection and connection traversal: can be used as a graphics database


index: Enter meta data for search (1.0 version will be supported)


Large data Object Support (Luwak)


offers two versions of "Open source" and "Enterprise"


Full-text Search, indexing, via Riak Search server query (Beta)


supports masterless multi-site replication and commercial licensing for SNMP monitoring








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), indexed data via key values


can be persisted to the hard disk

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.