4、什么是NoSQL

news/2025/3/14 0:55:28/

4、什么是NoSQL

NoSQL

NoSQL = Not Only SQL,就是不仅仅是SQL的意思

泛指非关系型数据库,随着web2.0的诞生!传统的关系型数据库很难对付web2.0时代,因为web2.0时代又很多数据大爆炸新生的产物比如视频、音乐、大数据产生的其他的数据,尤其是超大规模的高并发的社区!此时的关系型数据库已经不能满足发展的需要。NoSQL在当今大数据环境下发展的十分迅速,Redis始发站最快的,也是必须要掌握的技术。

关系型数据库就像表格一样,是由行和列组成的,

NoSQL的特点

  1. 能够存储关系型数据库无法存储的数据,比如很多用户的个人信息,社交网络、地理位置、流媒体等,这些数据类型的存储不需要一个固定的格式(也就是不需要行跟列),比如一个人的社交网络和地理位置是一个图谱,是一个拓扑图,这个拓扑图不是一个固定的格式,而是动态发展的!不需要过多的操作就可以横向(用多台机器实现)或纵向扩展。比如Java中有一个数据类型Map<String,Object>,也就是键值对,string是一个名字,Object是存放的信息,可以存任何信息,这其实就是一种非常典型的NoSQL的表现。使用键值对来控制。我们后面还会学习,NoSQL有四种分类,键值对只是其中的一种方式。

  2. 方便扩展(数据之间没有关系,很好扩展)

  3. 大数据量高性能(Redis一秒可以写8万次,读取11万次,NoSQL的缓存是一种记录级大的,是一种细粒度的缓存,性能比较高!)

  4. 数据类型多样型。这里之前我们说过有五种基本类型和三种特殊数据类型(Redis学习知识点)而且不需要事先设计数据库!随取随用。如果数据库量十分庞大,很多人就无法设计了!

  5. 传统RDBMS(关系型数据库)和NoSQL的区别

    传统的RDBMS
    - 结构化组织,也就是表跟列
    - 基本的查询语句SQL
    - 数据和关系都存放在单独的表中
    - 数据操作语言、数据定义语言
    - 严格的一致性
    - 基础的事务等等
    
    NoSQL
    - 不仅仅是数据
    - 没有固定的查询语言
    - 有很多中存储方式,比如键值对存储、列存储、文档存储(mangoDB)、图形数据库(社交关系)
    - 最终一致性(是可以有误差的,只要最终的结果一致就行)
    - CAP定理和BASE理论(异地多活保证服务器不会宕机)
    - 高性能、高可用、高科扩展性
    

了解3V+3高

大数据时代的3V:主要是描述问题的

  1. 海量Volume,比如微信的聊天信息,全国的人都在用微信数据量还海量的
  2. 多样Variety,海量的数据又是不同类型的数据,比如文字、图片、位置信息
  3. 实时Velocity

大数据时代的3高:主要是对程序的要求

  1. 高并发,如此众多的用户如果不支持高并发,程序就会崩溃
  2. 高可扩,扩展性必须强,随时可以水平拆分,也就是可以随时搭建集群,机器不够了可以添加机器来解决
  3. 高性能,保证用户体验和性能

真正的实践中使用的都是NoSQL+RDBMS一起使用才是最强的


http://www.ppmy.cn/news/1066264.html

相关文章

js 类、原型及class

js 一直允许定义类。ES6新增了相关语法(包括class关键字)让创建类更容易。新语法创建的类和老式的类原理相同。js 的类和基于原型的继承机制与Java等语言中的类和继承机制有着本质区别。 1 类和原型 类意味着一组对象从同一个原型对象继承属性。因此&#xff0c;原型对象是…

java-Optional 类详解

目录 前言 Optional的构造方法 Optional的相关方法介绍 isPresent用法&#xff1a; get用法&#xff1a; filter用法&#xff1a; orElse用法&#xff1a; orElseGet用法 orElseThrow用法 map用法 flatMap用法&#xff1a; 前言 Optional 类是java8的新特性&#xff0…

Java之BigDecimal系列--去掉小数末尾多余的0

原文网址&#xff1a;Java之BigDecimal系列--去掉小数末尾多余的0_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java去掉BigDecimal小数末尾多余的0的方法。 概述 BigDecimal提供了stripTrailingZeros()方法可以实现去掉小数末尾的 0。 调用了stripTrailingZeros()再调…

【Flutter】Flutter 使用 toggle_switch 实现切换按钮

【Flutter】Flutter 使用 toggle_switch 实现切换按钮 文章目录 一、前言二、安装和基本使用三、Toggle Switch 的基础示例四、Toggle Switch 的高级用法五、实际业务中的完整示例六、总结 一、前言 你好&#xff0c;我是小雨青年&#xff0c;今天我要为大家介绍一个非常实用的…

【IEEE会议】2023年第三届IEEE数字化社会与智能系统国际学术会议(DSInS 2023)

2023年第三届IEEE数字化社会与智能系统国际学术会议&#xff08;DSInS 2023) 2023 3rd International Conference on Digital Society and Intelligent Systems 由西南交通大学主办&#xff0c;悉尼科技大学、四川大学、中南大学社会计算研究中心、西南财经大学、武汉理工大学…

系统架构设计高级技能 · Web架构

现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 Web架构 一、Web架构介绍1.1 Web架构涉及技术1.2 单台服务…

python开发--文件敏感信息识别

0x00 背景 文档中敏感信息识别。不限于word, pdf 等文件格式中的敏感信息及其中的图片敏感信息识别。 0x01 识别原理 以word文档为例 .docx文件有很多种结构&#xff0c;这些结构在python-docx中用3种不同的类型来表示&#xff1a;最高一层是Document对象表示文档&#xff0…

Spring Boot中通过maven进行多环境配置

上文 java Spring Boot将不同配置拆分入不同文件管理 中 我们说到了&#xff0c;多环境的多文件区分管理 说到多环境 其实不止我们 Spring Boot有 很多的东西都有 那么 这就有一个问题 如果 spring 和 maven 都配置了环境 而且他们配的不一样 那么 会用谁的呢&#xff1f; 此…