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 数据库引入 )的主要内容,如果未能解决你的问题,请参考以下文章

j2ee学习笔记

RedisNoSQL 数据库 ② ( NoSQL 数据库特点 | NoSQL 数据库适用场景 | 常见的 NoSQL 数据库 | Redis | MongoDB | 数据库排名 )

J2EE中的HttpSession

随笔11 J2EE中常用的名词解释

Spring-- 概述

①万字《详解canvas api画图》小白前端入门教程(建议收藏)