RedisNoSQL 数据库 ① ( J2EE 技术栈简介 | NoSQL 数据库引入 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedisNoSQL 数据库 ① ( J2EE 技术栈简介 | NoSQL 数据库引入 )相关的知识,希望对你有一定的参考价值。
文章目录
一、J2EE 技术栈简介
基本技术 : 在 Java 后端开发中 , 最基础的功能 , 可以通过以下 JavaWeb 技术进行实现 , 如 :
- Java 语言
- JSP 技术 , JavaServer Pages
- Tomcat 服务器
- html + CSS + javascript 前端页面技术
- RDBMS 关系数据库管理系统
- Linux 操作系统
- JDBC 连接操作数据库
- SVN 代码托管
上述技术可以解决 Java 后端开发的功能问题 , 借助上述技术 , 可以 实现 CURD 最基本的操作 , 只是 操作起来比较繁琐 , 并且性能很低 ;
基本技术 只是 解决了 功能实现问题 , 但是实现起来很繁琐 , 不容易维护 和 扩展 , 如果想要 快速开发 , 扩展 , 维护 程序 , 就需要使用 相关框架 技术 ;
常见的框架技术有 :
- Spring 框架
- Spring MVC
- MyBatis 框架
- Hibernate 框架
- Struts 框架
如果 项目很大 , 开发维护问题解决了 , 那么开始考虑性能问题 , 如果 用户量很多 , 并发量很高 , 就需要解决性能问题 ;
提高性能常用的技术如下 :
- NoSQL 非关系型数据库 , 如 Redis ;
- Java 多线程并发 , 高并发操作
- Hadoop 大数据云计算
- nginx 负载均衡
- MQ , Message Queue 消息队列技术
- ElasticSearch 搜索技术
二、NoSQL 数据库引入
早期 Web 架构 : 早期的 Web 服务器 中 , 在 Linux 服务器 中部署 Web 服务器 , 在Web 服务器上部署 J2EE 项目 , 然后通过 Web 服务器 访问数据库 ;
上述架构 中 , 如果用户访问量急剧增加 , Web 服务器 面临 CPU 的压力 , 数据库访问需要进行 IO 操作 , 因此 数据库 面临 数据 IO 压力 ;
访问量增加 , 数据库的 IO 性能逐渐成为限制 整体性能的瓶颈 ;
NoSQL 的出现 , 解决了上述 CPU 和 数据库 IO 压力 ;
将服务器进行 分布式部署 , 部署多台服务器 , 在所有的服务器之上 , 要 部署一个 负载均衡服务器 , 一般是 Nginx 服务器 ;
当 访问 Web 页面时 , 先访问 负载均衡服务器 , 然后 负载均衡服务器 会将 请求 平均分配给 不同的分布式服务器 , 如 : 分布式部署了 4 台服务器 , 有 4 万个请求 , 每个服务器分担一万个请求 ;
客户端 访问 Web 服务器 , 需要使用到 session 缓存 , 如果使用分布式服务器 , 可能 每次请求都是不同的服务器进行响应的 , 那么 session 缓存需要保存到一个地方 , 有下面几种方案 :
- 保存到本地的 cookie 中 : 由于 保存到用户的客户端浏览器中 , 产生了安全问题 , 同时每次请求都带着 session 数据增加了网络负担 ;
- 复制 session 缓存 : 在 多台 分布式服务器 中缓存相同的 session 数据 , 这样就导致了 数据的冗余 , 浪费存储空间 ;
- NoSQL 数据库访问 : 客户端 访问时 , 到 NoSQL 数据库中查询是否有 该客户端的 session 数据 , 有的话直接访问 , 没有的话 创建缓存 ;
NoSQL 数据库的好处是 不需要 进行 文件 IO 操作 , 其数据都保存在 内存 中 , 运行速度很快 ;
NoSQL 可以用于 缓存数据库 , 将频繁查询的数据 , 放在 NoSQL 数据库中 , NoSQL 数据库中查询不到 , 再查询关系型数据库 ;
以上是关于RedisNoSQL 数据库 ① ( J2EE 技术栈简介 | NoSQL 数据库引入 )的主要内容,如果未能解决你的问题,请参考以下文章
RedisNoSQL 数据库 ② ( NoSQL 数据库特点 | NoSQL 数据库适用场景 | 常见的 NoSQL 数据库 | Redis | MongoDB | 数据库排名 )