1. MongoDB
Introduction
MongoDB is a distributed file storage-based database. Written in C ++. It mainly solves the access efficiency of massive data and provides scalable and high-performance data storage solutions for Web applications. When the data volume exceeds 50 GB, The MongoDB database access speed is more than 10 times that of MySQL. MongoDB's concurrent read/write efficiency is not particularly good. According to the official performance test, it can process 5 thousand-bytes per second ~ 15 thousand read/write requests. MongoDB also comes with an excellent Distributed File System gridfs that supports massive data storage.
MongoDB also has a ruby project named mongomapper, which imitates the MongoDB interface written by MerB's datamapper. It is very simple to use and almost identical to datamapper, and has very powerful functions.
MongoDB is a product between relational databases and non-relational databases. It has the most abundant functions and features like relational databases. The supported data structure is very loose and is similar to the JSON bjson format. Therefore, it can store complicated data types. The biggest feature of Mongo is that it supports a very powerful query language. Its syntax is somewhat similar to an Object-Oriented Query Language. It can almost implement most of the functions similar to single-table queries in relational databases, it also supports data indexing.
The so-called "collenction-orented" means that data is stored in a data set by groups and is called a collection ). Each set has a unique identification name in the database and can contain an infinite number of documents. The concept of a set is similar to that of a table in a relational database service (RDBMS). The difference is that it does not need to define any schema ).
Schema-free means that we do not need to know any schema definitions for the files stored in the MongoDB database. If necessary, you can store files of different structures in the same database.
The document stored in the set is saved as a key-value pair. The key uniquely identifies a document, which is a string type, and the value can be a complex file type. We call this storage form bson (Binary serialized document format ).
The MongoDB server can run on Linux, windows, or OS X. It supports 32-bit and 64-bit applications. The default port is 27017. We recommend that you run on a 64-bit platform because MongoDB supports a maximum file size of 2 GB when running in 32-Bit mode.
MongoDB stores data in files (the default path is/data/DB) and uses memory ing files for management to improve efficiency.
Features
It features high performance, ease of deployment, and ease of use, making it easy to store data. Features:
- It is designed for centralized storage and is easy to store object-type data.
- Free mode.
- Supports dynamic query.
- Supports full indexing, including internal objects.
- Query is supported.
- Supports replication and fault recovery.
- Use efficient binary data storage, including large objects (such as videos ).
- Automatic fragment processing to support scalability at the cloud computing level.
- Supports Ruby, Python, Java, C ++, PHP, C #, and other languages.
- The file storage format is bson (a json extension ).
- It can be accessed through the network.
Official Website
Http://www.mongodb.org/
2. couchdb
Introduction
Apache couchdb is a document-oriented database management system. It provides a rest interface that uses JSON as the data format to operate on it, and can manipulate the organization and presentation of documents through views. Couchdb is a top-level open-source project of the Apache Foundation.
Couchdb is a document-oriented database system developed using Erlang. Its data storage method is similar to Lucene's index file format. The biggest significance of couchdb is that it is a new generation of storage system for Web applications. In fact, couchdb's slogan is: the next generation of Web application storage system.
Features
Features:
- Couchdb is a distributed database that distributes storage systems to N physical nodes, and coordinates and synchronizes data read/write consistency between nodes. Of course, this can also be achieved through the unparalleled concurrency features of Erlang. For large-scale Web-based application documentation applications, the distributed architecture does not require database sharding and table sharding as in traditional relational databases, and a large number of changes are made at the application code layer.
- Couchdb is a document-oriented database that stores semi-structured data. It is similar to Lucene's index structure and is especially suitable for storing documents. Therefore, it is suitable for applications such as CMS, phone book, and address book, in these applications, document databases are more convenient and have better performance than relational databases.
- Couchdb supports rest APIs, allowing you to use JavaScript to operate the couchdb database, or write query statements using JavaScript. we can imagine that, how simple and convenient is the CMS system developed by using Ajax technology combined with couchdb. In fact, couchdb is only the tip of the iceberg of Erlang applications. In recent years, Erlang-based applications have also been booming, especially in the field of Web-based large-scale and distributed applications, almost all of them are advantages of Erlang.
Official Website
Http://couchdb.apache.org/
3. hbase
Introduction
Hbase is a distributed, column-oriented open source database. This technology comes from the Google paper "bigtable: a distributed storage system for structured data" written by Chang et al ". Just as bigtable uses the distributed data storage provided by the Google file system, hbase provides bigtable-like capabilities on hadoop. Hbase is a subproject of Apache hadoop project. Hbase is a database suitable for storing unstructured data. Another difference is that hbase is column-based instead of Row-based.
Hbase-hadoop database is a highly reliable, high-performance, column-oriented, and Scalable Distributed Storage System. hbase technology can be used to build large-scale structured storage clusters on low-cost PC servers. Hbase is an open-source implementation of Google bigtable, similar to Google bigtable's use of GFS as its file storage system, hbase uses hadoop HDFS as its file storage system, and Google runs mapreduce to process massive data in bigtable, hbase also uses hadoop mapreduce to process massive data in hbase. Google bigtable uses chubby as the collaborative service, and hbase uses zookeeper as the corresponding service.