JavaEE技术之Redis:NoSQL简介及Web2.0性能挑战解决方案.pdfVIP

  • 0
  • 0
  • 约2.4万字
  • 约 28页
  • 2026-01-21 发布于北京
  • 举报

JavaEE技术之Redis:NoSQL简介及Web2.0性能挑战解决方案.pdf

Redis

尚硅谷java

第1章NoSQL简介

1.1技术的分类

1)解决功能性的问题

Java、Servlet、Jsp、Tomcat、RDBMS、JDBC、Linux、Svn等

2)解决扩展性的问题

Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等

3)解决性能的问题

NoSQL、Java多线程、Nginx、MQ、ElasticSearch、Hadoop等

1.2WEB1.0及WEB2.0

1)Web1.0的时代,数据量很有限,用一夫当关的高性能的单节点服务器可以解决大部

分问题.

2)Web2.0时代的到来,用户量大幅度提升,同时产生了大量的用户数据,加上后来

的智能移动设备的普及,所有的互联网平台都了巨大的性能.

1.3解决服务器CPU内存

思考:Session共享问题如何解决?

⚫方案一、存在中

此种方案需要将Session数据以的形式存在客户端,不安全,网络负担效率低

⚫方案二、存在文件服务器或者是数据库里

此种方案会导致大量的IO操作,效率低.

⚫方案三、Session

此种方案会导致每个服务器之间必须将Session广播到集群内的每个节点,Session数据

会冗余,节点越多浪费越大,存在广播风暴问题.

⚫方案四、存在Redis中

目前来看,此种方案是。将Session数据存在内存中,每台服务器都从内存中读

取数据,速度快,结构还相对简单.

1.4解决IO

将活跃的数据缓存到Redis中,客户端的请求先打到缓存中来获取对应的数据,如果能获取

到,直接返回,不需要从MySQL中。如果缓存中没有,再从MySQL数据库中数据,

将的数据返回并存一份到Redis中,方便下次.

扩展:对于持久化的数据库来说,单个库单个表存在性能瓶颈,因此会通过水平切分、垂直

切分、分离等技术提升性能,此种解决方案会破坏一定的业务逻辑,但是可以换取更高

的性能.

1.5NoSQL数据库概述

1)NoSQL(NoSQL=NotOnlySQL),意即“不仅仅是SQL”,泛指非关系型的数据库。

NoSQL不依赖业务逻辑方式,而以简单的key-value模式。因此大大的增加了

数据库的扩展能力。

2)NoSQL的特点

不遵循SQL

不支持ACID

远超于SQL的性能。

3)NoSQL的适用场景

对数据高并发的读写

海量数据的读写

对数据高可扩展性的

4)NoSQL的不适用场景

需要事务支持

基于sql的结构化查询,处理复杂的关系,需要即席查询。

5)建议:用不着sql的和用了sql也不行的情况,请考虑用NoSql

1.6常用的缓存数据库

1)Memcached

2)Redis

3)mongoDB

4)列式数据库

⚫先看行式数据库

思考:如下两条SQL的快慢

select*fromuserswhereid=3

selectavg(age)fromusers

⚫再看列式数据库

5)HBase

6)Cassandra

7)Neo4j

1.7数据库

第2章Redis简介及安装

2.1Redis

Redis是一个开源的key-value系统。和Memcached类似,它支持的value类型相对

,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档