【一】技术发展

技术的分类

1. 解决功能性的问题: Java 、 Jsp 、 RDBMS 、 Tomcat 、 HTML 、 Linux 、 JDBC 、 SVN

我们做一个项目,无外乎增删改查操作

为了实现而实现的这些功能,我们就要学解决这些功能性问题的技术

2. 解决扩展性问题: Strits 、 Spring 、 SpringMVC 、 Hibernate 、 Mybatis

随着项目的完成,我们需要做项目的优化

这个时候就要做代码的修改,这些框架可以方便我们高效地开发

3. 解决性能的问题:  NoSql 、 Java线程 、 Hadoop 、 Nginx 、 MQ 、 ElasticSearch

随着用户数量的上升,我们就会面临多线程的问题

而我们这里说的 Redis 就是一种典型的 NoSql 数据库

【二】 Web 1.0 时代

浏览器 —— Web 服务器 —— 数据库服务

这就是我们早期的一种架构

【三】 Web 2.0 时代

浏览器 + 手机端 —— Web 服务器 —— 数据库服务

Web 服务器的访问量增加

服务器的 CPU 和内存面临着巨大的压力

数据库服务面临着巨大的 IO 压力

那这个时候我们就会使用负载均衡来解决服务器压力过大的问题

然而,当服务器变多了以后,我们的 session 却还是唯一的

我们有以下几种方案去解决这个问题

1. 存在浏览器的 cookie 里面

但是这样做,不安全,效率低

2. 存在文件服务器或者数据库里

这样反而会增加数据库的 IO 压力

3. session 复制

这样会造成大量的session数据冗余,节点越多,浪费就越大

4. 缓存数据库

完全在内存中,速度快。数据结构简单

【四】 缓存数据库

打破了传统的关系型数据库以业务逻辑为依据的存储模式,而针对不同数据结构类型,改为以性能为有限的存储方式

【五】 NoSql 数据库

1. NoSql( NoSql = Not Only Sql ),意思就是“不仅仅是 Sql ”,泛指非关系型数据库

NoSql 不依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据库的扩展能力。

  • 不遵循 Sql 标准
  • 不支持 ACID (原子性、一致性、隔离性、持久性)
  • 远超于 Sql 的性能

2. NoSql 的使用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据的高扩展性

3. NoSql 不适用的场景

  • 需要事务支持
  • 基于 sql 的结构化查询存储,处理复杂的关系,需要及时查询。
  • (用不着 sql 的和用了 sql 也不行的情况,请考虑用 NoSql )

4. Memcache

  • 很早出现的 NoSql 数据库
  • 数据库都在内存中,一般不持久化
  • 支持简单的 key-value 模式,支持类型单一
  • 一般是作为缓存数据库辅助持久化的数据库

5. Redis

  • 几乎覆盖了 Memcache 的绝大部分功能
  • 数据都在内存中,支持持久化,主要用作备份恢复
  • 除了简单的 key-value 模式,还支持多种数据结构的存储,比如 list、set、hash、zset 等
  • 一般是作为缓存数据库辅助持久化的数据

6. MongoDB

  • 高性能、开元、模式自由( schema free )的文档型数据库
  • 数据都在内存中,如果内存不足,把不常用的数据保存到硬盘
  • 虽然是 key-value 模式,但是对 value (尤其是 json )提供了丰富的查询功能
  • 支持二进制数据及大型对象
  • 可以根据数据的特点替代 RDBMS ,成为独立的数据库。或者配合 RDBMS,存储特定的数据。

【六】行式存储数据库

1. 行式数据库

你们可以理解成把一条条的数据以json文本的形式表现出来

2. 列式数据库

就相当于原本的数据是一行一行记的,现在是一列一列记的

以上这两种方式跟传统的数据库相比,各有利弊,看应用场景

【七】图关系型数据库

主要应用:社会关系,公共交通网络,地图及网络拓普(n*(n - 1) / 2)

【八】最新的数据库排名

  1. Oracle
  2. MySql
  3. Sql Server
  4. PostgreSql
  5. MongoDB
  6. IBM Db2
  7. Redis

NoSql 数据库简介相关推荐

  1. 【Redis6快速深入学习01】NoSQL数据库简介

    文章目录 1 NoSQL数据库简介 1.1 技术发展 1.2 NoSQL数据库 1.3 行式存储数据库(大数据时代) 1.4 图关系型数据库 1 NoSQL数据库简介 1.1 技术发展 技术的分类 解 ...

  2. [Redis6]NoSQL数据库简介_特点

    NoSQL数据库简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不依赖业务逻辑方式存储,而以简单的key ...

  3. NoSQL数据库--简介

    一.What's NoSQL? NoSQL,全称是"Not Only Sql",指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的 ...

  4. NoSQL 数据库 简介

    一.  NoSQL概念 开源的数据库用的最多的是PostgreSQL和MySQL. 关于这2者的对比,参考我的Blog: MySQL 和 PostgreSQL 对比 http://blog.csdn. ...

  5. NoSql数据库简介及Redis学习

    NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...

  6. 1.NoSQL数据库简介

    1.1技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 2.解决扩展性的问题:Struts.Spring.SpringMV ...

  7. 【用户画像】功能实现值写入ClickHouse人群包、预估和更新分群人数,NoSQL数据库介绍

    文章目录 一 写入ClickHouse人群包 1 组合查询Bitmap表SQL代码实现 (1)SQL语句分析 (2)实现思路 (3)实现过程 controller层 service层 Taginfo实 ...

  8. NoSQL数据库Redis使用命令简介

    NoSQL 数据库Redis使用命令简介 NOSQL数据库可以按照它们的数据模型分成4类: 1.键-值对存储库(Key-Value) redis-- 2.BigTable实现(BigTable-imp ...

  9. 【简介】分布式NoSQL数据库

    分布式NoSQL数据库 基本概念 什么是NoSQL? NoSQL是一些分布式非关系型数据库的统称,它采用非关系的数据模型,弱化模式或表结构.弱化完整性约束.弱化甚至取消事务机制,可能无法支持,或不能完 ...

最新文章

  1. python时间计算_python利用datetime模块计算时间差、当前时间多加一天、一小时、一分钟和常用操作...
  2. reboot mysql fail_mysql 5.7.18,在系统重启后,为什么无法启动?
  3. 记一次有意思的种树比赛
  4. 手机上有没有学python的软件-盘点几个在手机上可以用来学习编程的软件
  5. java json处理入门
  6. java文字垂直居中_记录水平居中垂直居中
  7. linux只能单向ping通,两机只能单向Ping通的原因、ping的原理
  8. pycharm代码删除恢复
  9. 蘑菇街2016校园招聘——聊天
  10. springbooot使用google验证码
  11. matlab数组下标可为正整数和逻辑数
  12. ESP32+阿里云+vscode_Pio
  13. PCB设计中的Mark点
  14. 苹果手机找回ID及密码经验
  15. 讲解NRF24L01P无线收发模块(转载)
  16. 如何通过excel批量生成word文件?
  17. LADY M过了自己的“赏味期限”?
  18. 7z 快速、高压缩率的命令参数 压缩方法
  19. 链克价格逐日上涨的背后因素
  20. 从零开始学习ESP32——程序下载

热门文章

  1. 宝塔linux面板源码,用宝塔搭建自己的源码程序
  2. 图片墙瀑布式加载图片方法
  3. Bootstrap之翻页
  4. html 翻页效果,JavaScript实现翻页功能(附效果图)
  5. Cocos2D开源引擎最适合游戏创业团队
  6. 互联网流量是什么意思_谈谈我理解的流量
  7. 开机弹窗:C:\Program Files\WindowsApps\22094Synapticslncorporate.SmartAudio参数错误
  8. 【星海出品】docker入门
  9. 相机标定、单目视觉测距原理
  10. 计算机vb考试能插u盘么,08年计算机二级VisualBasic辅导:用VB打开任意盘(硬盘/U盘/光盘)的文件...