1_NoSQL数据库简介 - 图1

技术简介

技术概览

1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis
3、解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch

Web技术发展过程

Web1.0时代
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
image.png
Web2.0时代
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。服务器方面出现cpu和内存的压力,数据库方面出现IO压力
image.png

session共享问题
image.png
服务器端会保存几万个甚至几十万个sessionID,当userA访问服务器A,那么服务器A就在访问之后就保存了userA的sessionID,但当userA访问服务器B时,服务器B是没有userA的sessionID的,这样就出现了session共享问题。
image.png
关于session的共享问题,前三种方案都存在各自的问题,最后使用NoSQL数据库解决CPU及内存的压力直接通过内存进行读取sessionID。
关于session和cookie:https://www.liaoxuefeng.com/wiki/1252599548343744/1328768897515553
现在用token代替了session,服务器通过token两次签名比对机制代替了session的存储

解决CPU及内存关于session的压力
image.png

解决IO压力
下图是采用了方案四之后的架构图,使用Nosql作为缓存数据库,减少IO
image.png


NoSQL数据库

什么是NoSQL数据库

image.png

NoSQL的适用场景和不适用场景

image.png

NoSQL数据库的分类

image.png

行式与列式数据库

大数据时代Hase是列式数据库,不同于传统的Mysql,行式数据库。
image.png