8 Kinds of NoSQL database system comparison (turn)
Source: Internet
Author: User
Keywordsnbsp 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
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.