1.Nosql数据库简介
1.1 技术发展
技术分类:
- 解决功能性的问题:java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、svn
- 解决扩展性问题:Struts、Spring、SpringMvc、Hibernate、Mybatis
- 解决性能问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElassticSearch
1.1.1 Web1.0时代
web1.0时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
1.1.2 Web2.0时代
随着web2.0的到来,用户访问量大幅度提升,同时产生了巨大的用户数据。加上后来智能移动数据的普及,所有的互联网平台都面临了巨大的性能挑战。
1.1.3 解决CPU和内存压力
1.1.4 解决IO压力
1.2.Nosql数据库
1.2.1 Nosql数据库概述
NoSQL(NoSQL = Not Only SQL),即“不仅仅是SQL”,泛指非关系性数据库。
NoSQL不依赖业务逻辑方式存储,而已简单的key-value模式存储。因此大大增加了数据库的扩展能力。
- 不遵循SQL标准。
- 不支持ACID。(原子性、一致性、隔离性、永久性)
- 远超与SQL的性能。
1.2.2 Nosql适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数句的高扩展性
1.2.3 Nosql适用场景
- 需要事务的支持
- 基于说起来的结构化查询,处理复杂的关系。需要即席查询。
- (用不着SQL和用了Sql也不行的情况,请考虑NoSQl)
1.2.4 Memcache
1.2.5 Redis
1.2.6 MongoDB
1.3 行式存储数据库(大数据世道)
1.3.1 行式数据库
1.3.2 列式数据库
1.3.2.1 HBase
1.3.2.2 Cassandra
1.4 图关系型数据库