SIP Key-value Database (i)--list NoSQL
Recently, due to the relationship of a project, we have studied the concept of Key-value database, which is a very recent fire. This series analyzes and tests the performance of several Key-value databases from the perspective of project requirements.
The Key-value database, also known as the NoSQL database, is based on the basic principle of CAP.
CAP is a concept proposed by Eric Brewer on PODC in 2000,
C-consistency;
A-availability;
P--Tolerance to network partitions;
You can has at most of the these properties for any shared-data system.
Translation into Chinese, is generally complete, usability, network can be divided, three cannot be combined.
So the classic relational database in the c,a two aspects of doing very well, so in the rapid development of the Internet today, in the network expansion has appeared fatal mishap. As a variety of web2.0 sites to pursue user-created content, resulting in a large number of write operations, relational database replication model has been unable to withstand, the database must be segmented. But the segmentation is not universal to the business, so the database expansion becomes stretched. Thus, the Key-value database came into being.
Key-value database is as much as possible to meet the a,p two aspects, even at the expense of C to meet.
So in the Key-value database, basically do not support transactions, mostly with replication function, can be very convenient sub-table and distributed implementation.
Here's one of Robbin's NoSQL databases-why use a non-relational database? A number of notable key-value databases mentioned in the article:
1. Redis Redis
is essentially a key-value type of memory database, much like memcached, the entire database is loaded in memory to operate, periodically through asynchronous operations to flush the database data to the hard disk to save. Because it is pure memory operation, Redis performs well and can handle more than 100,000 reads and writes per second. However, the shortcomings of the database capacity is limited by physical memory, can not be used as high-performance read-write data, and it does not have a native extensible mechanism, not scalable, to rely on the client to achieve distributed read and write, so the Redis suitable scenario is mainly confined to the small data volume of high-performance operations and operations.
2. Tokyo Cabinet and Tokyo tyrant
The former is a high-performance storage engine, which is a server that provides multithreaded high concurrency. The name was developed by the Japanese and was originally used in Japan's largest SNS site, mixi.jp. In addition to supporting Key-value storage, TC supports saving Hashtable data type, so it is much like a simple database table, and also supports column-based conditional query, paging query and sorting function, basically equivalent to support single table basic query function, So you can simply replace many of the operations of a relational database. But his main drawback is that the performance of concurrent write data will drop dramatically after the amount of data reaches hundreds of billions of dollars-"nosql:if only It is."
3. MongoDB
MongoDB is a product between a relational database and a non-relational database, and is the most versatile and most like relational database in a non-relational database. His support for the data structure is very loose, is similar to JSON Bson format, so can store more complex data types, he is mainly used to solve the massive data access efficiency problem. His storage seems to have a larger demand for disk space. The new version starts to support distributed.
4, Hypertable
Hypertable and similar hbase are developed from Google's BigTable model, which is good for distributed support, but is more complex to configure. Let's introduce some of these, and many other Key-value databases are or have been developed. But academia does not seem to be optimistic about the Key-value database. In my opinion, Key-value is very hot now, but the composition of speculation is relatively large, in the real application or should be based on their own characteristics to choose the data storage method is king.
SIP Key-value Database (i)--list NoSQL