Background to the rise of NoSQL:
1) The Rise of web2.0 (high interactivity), the traditional relational database in order to ensure the " universality " of the design has brought a complex function, high performance costs, and expensive problems.
2) Avoid unnecessary complexity
3) Higher throughput and high concurrency
4) Ability to scale horizontally on commercial hardware
5) NoSQL implementation of large table automatic cutting, more conducive to support distributed processing
6) compromise on performance and security (sometimes without the high security of SQL)
7) Cloud computing needs (from Central mode to distribution mode)
Various mainstream NoSQL databases:
1) memcached Database: The success of memcached database has led to the upsurge of NoSQL movement
Characteristics:
1) It is a hashmap that stores key-value pairs
2) high-performance distributed memory cache server, resident memory, for dynamic Web applications to mitigate
Database load
3) The client communicates with the Daemon (daemon) through the memcached protocol
4) Lack of authentication and security control (so should be deployed inside the firewall)
5) event handling mechanism based on libevent (http://baike.haosou.com/doc/1037929- 1097798.html)
6) distributed without communication with each other (server does not communicate with each other)
2) Redis database: is a key-value storage system, similar to memcached
1) extremely fast running speed
2) data is in memory, it is a memory database with hard disk support
3) Support master-slave replication (master-slave replication)
4) supports multiple data types such as String (string), list (linked list), set (set), Zset (ordered collection)
5) Support Pop/push mechanism, allow user to implement message mechanism
3) neo4j Database: It is a relational-based graph database
1) Access Agreement: Http/rest
2) can be used independently or embedded in a Java program
3) Both nodes and edges of the graph can have meta-data
4) Support path search using multiple methods
5) index using key values and relationships
6) optimized for read operations
7) Support transactions, Enterprise Edition also supports online backup and security and monitoring
4) Cassandra Database: Non-relational mixed-type database, similar to Google's
BigTable (column-based) database
1) developed by the Java language
2) write operations are faster than read operations
3) distributed, column-based structure
4) User: Facebook
5) HBase databases: Hadoop database is an open source implementation of Google's bigtable database
1) is a distributed, column-type database
2) HBase leverages Hadoop's HDFs as a file system, leveraging Hadoop Mapreduce
To handle the massive amounts of data in HBase
3) Adopt distributed architecture Map/reduce
4) Protocol: Http/rest, support THIRFT
5) for Big data
6) MongoDB Database:
1) The community is very active, the document is rich, by the business support of 10gen company, the continuity is guaranteed
2) language used: C + +
3) Save some good features of SQL (index, search ...) )
4) Protocol: Custom,binary (Bson)
5) Support Master/slave Replication (support automatic error reply, use sets copy)
7) built-in shard mechanism
8) Support JavaScript expression query, can execute arbitrary JS function on server side
9) data storage with memory-to-file mapping
10) on 32-bit operating systems, the database size is limited to 2.5G and 64-bit systems are unlimited
11) The empty database accounts for approximately 192M
12) Use Gridfs to store big data and meta data
Introduction to Nosql and Mongodb