1.1技术发展1
技术的分类。 1、解决功能性的问题: Java、Jsp、 RDBMS、Tomcat、 HTML、 Linux、 JDBC、SVN 2、解决扩展性的问题:
Struts、 Spring、 SpringMVC、 Hibernate、 Mybatis 3、解决性能的问题: NoSQL. Java 线程、Hadoop、
Nginx、MQ、ElasticSearch
1.1.1 Web1.0时代
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以 解决大部分问题。
1.1.2 Web2.0时代
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产性了大量的用户 数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
1.13. 解决CPU及内存压力
1.1.4. 解决I0压力
1.2NoSQL数据库
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的和用了sql也不行的情况,请考虑用NoSql )。
1.2.4 Memcache
*
很早出现的NoSql数据库。
*
数据都在内存中,一般不持久化。
*
支持简单的key-value模式,支持类型单一。
*
一般是作为缓存数据库辅助持久化的数据库。
1.2.5 Redis
*
几乎模盖了Memcached 的绝大部分功能。
*
数据都在内存中,支持持久化,主要用作备份恢复。
*
除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set. hash、zset等。。
*
一般是作为缓存数据库辅助持久化的数据库。
1.2.6 MongoDB
*
高性能、开源、模式自由(schema free) 的文档型数据库
*
数据都在内存中,如果内存不足, 把不常用的数据保存到硬盘。
*
虽然是key-value 模式,但是对value (尤其是json)提供了丰富的查询功能。
*
支持二进制数据及大型对象。
*
可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBUS,存储特定的数据。
这是本人在学习redis时做的一点小笔记,记录一下。redis作为非关系型数据库大多数用在存储访问量较大的数据,减轻数据库的负担,但也可以持久化当作数据库使用。