NoSQL

为什么使用NoSQL

1.单机MySQL的网站

APP----->DAL------>MySQL

90年代:一个基本的网站访问量一般不会很大,单个数据库完全足够。

那个时候,更多的去使用静态网页HTML --- -服务器没有太大的压力

这种情况下,整个网站的瓶颈是什么?

1.数据量太大,一台机器放不下了。

2.数据的索引(300万就一定要建立索引)B+Tree,一个机器内存也放不下

3.访问量(读写混合),一个服务器承受不了

只要你发现出现这三种,必学晋级:

2.Memcached+MySQL+垂直拆分(分库分表)

APP------>DAL------->MySQL(1)MySQL--(2写内容)---MySQL(3)

1.3读2写(读写分离)

网站80%都是在读,每次要查询数据库十分麻烦,减轻服务器的压力,使用缓冲提高效率

APP------>DAL----cache--->MySQL(1)MySQL--(2写内容)---MySQL(3)

发展方式:

优化数据结构和索引------->文件缓冲(IO)---------->Memcached(当时火热的技术)

3.分库分表+水平拆分+MySQL集群

​ 集群1:M---(S--S)

APP----DAL-------cach--集群2:M---(S--S)

​ 集群3:M---(S--S)

本质是:数据库(读、写)

早些年:MyISAM:表锁(100万张三--密码)十分影响效率!高并发有严重问题

转战Innodb:行锁

慢慢的就开始分库分表解决写的压力 MySQL提供了表分区(这个没有多少公司使用),MySQL的集群

如今年代

技术爆炸,2010年---2022年,世界翻天覆地的变化(定位,音乐,...)

MySQL数据库不能用了,数据量大,变化很快!!

(浏览量 10w+ 固定时间后才持久化)

MySQL有的使用它来储存一些比较大的文件,博客,图片!!数据库表很大,数据库的效率低了!如果有一种数据库来专门处理这种数据,MySQL压力就变的十分小了(研究如何处理问题!!)大数据的IO压力下,表几乎没法更大!

目前一个基本的互联网项目

​ MySQL 01 缓存

1用户 负载均衡主机 APP服务器1 MySQL 02 移动信息服务器

2用户 --企业防火墙== APP服务器2 MySQL 03 Hadoop集群

3用户 负载均衡备机 APP服务器3 MySQL 04 实时通信服务

群发服务器 图片服务器 文件服务器 MySQL 05 流媒体服务器

为什么要NoSQL!

用户的个人信息、社交网络、地理信息、用户自己产生的数据、用户日志的爆发式增长

什么是NoSQL

not only sql(不仅仅是SQL)

关系型数据库:

  • 行和列来记录(POI)技术操作EXCEL表

泛指非关系型数据库,随着java分布式时代!音乐、尤其是大规模高并发的社区暴露很多难以克服的问题

NoSQL在当今大数据环境下,Redis是必须是掌握的。

很多的用户的个人信息、社交网络、地理信息、用户自己产生的数据、用户日志,这些数据类型的存储不需要一个固定的格式,不需要多月的操作就可以横向扩展。Map<String ,Object>

NoSQL的特点:

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

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

3.数据类型是多样型的(不需要事先设计数据库!随取随用,如果数据库的表是大的就没法设计了)

4.传统的RDBMS关系型数据库于NoSQL:

传统的CRUD
--结构化组织
--SQL
--数据和关系都存在单独的表中 row col
--操作操作,数据定义语言
--基础的事务
--不仅仅是数据
NoSQL
--不仅仅是数据
--没有固定的查询语言
--键值对储存,列存储,文档存储,图形数据库(社交关系)
--最终一致性
--CAP定理和BASE (异地多活)初级架构师
--高性能,高可用,高扩展
--。。。

3V+3高

大数据时代的3V

1.海量2.多样3.实时

大数据时代的3高:

1高并发2.高开拓3.高性能

真正的公司中:NoSQL+RDBMS 一起使用

技术没有高低之分,就看如何使用

阿里巴巴的演进分析

这么多的东西难道都是放在一个数据库中么?B2B

敏捷开发、极限编程、协同开发

开源才是技术的王道,任何一家互联网公司只是让用能用就好了

大量的公司做的都是相同的业务(竞品协议)

随着这样的竞争,业务越来越完善,越来越高!

如果你为想当架构师,没有什么是加一层是解决不了的

商品信息 数据库
基本信息 sql
商品SPU属性 DocumentDB
图片 图片银行接口
相关关键字 SearchEngine

思考:

1.商品:--名称,价格,商家信息----MySQL /Oracle(淘宝早年就去除IOE--王坚:阿里云的这群疯子)

淘宝内部的Mysql和我们不一样

2.商品的描述、评论、文字比较多 -- -文档性数据库(MongoDB)

3.图片分布式文件系统FastDFS

  • 淘宝自己的TFS
  • Gooals 的 GFS
  • Hadoop HDFS
  • 阿里云的 OSS

4.商品的关键字

---搜索引擎 solor elasticsearch

---ISerach :多隆

5.商品热门信息

--内存数据库

--Redis Tair Memache...

6.商品的交易:

外部的支付接口--三方应用

一个简单网页,背后的技术一定不是那么简单

  • 大型互联网的数据类型太多了
  • 数据源太多了,经常重构
  • 数据要改造

统一的数据服务层UDSL

---Mapping--

热点缓存平台

  • 过期控制

    • 事件过期
    • 自动过期
  • 热点匹配---热点规则
  • key生成-----KEY规则
  • 缓存读写------过期规则

热点缓存索引----KV集群

NoSQL的四大分类

KV键值对

  • 新浪:Redis
  • 美团:Redis+ Tair
  • 阿里、百度:Redis+memecache

文档形数据库:(bson格式json一样)

  • MongDB()

    • 基于分布式文件储存的数据库,c++编写,主要用来处理大量文档
    • 是一个介于关系型数据库和非关系型数据库的中间产品,是非关系型数据库中功能最丰富,最想关系型数据库的
  • ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图关系数据库

  • 它不存储图片,放的是关系,比如社交网络,广告推荐
  • Neo4j,InfoGrid

NoSQL(简介、历史)的更多相关文章

  1. MongoDB(一):NoSQL简介、MongoDB简介

    1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库. 1.2 为什么需 ...

  2. (原创)MongoDB之NoSQL简介

    Nosql简介1.1系统对数据的需求        Nosql[Nosql主要用途大数据处理]的全称为”not only sql”,为非关系型数据库[非关系型数据库就是关系型数据库的所有特点都没有了, ...

  3. NoSQL 简介及什么是AICD

    NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关 ...

  4. mongodb(一) NoSQL简介

    NoSQL简介   写在前面,本文就是学习的记录笔记,大部分内容都属于参考,分享给大家 关系与非关系数据库      那么应该了解下影响关系数据库性能的主要原因: 在关系型数据库中,导致性能欠佳的最主 ...

  5. Nosql简介 Redis,Memchche,MongoDb的区别

    本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis.Memchache.MongoDb和他们之间的区别.以下是本文章的阅读目录 一.Nosql介绍 1.Nosql简介 ...

  6. Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数

    1.Redis和nosql简介,api调用 14.1/ nosql介绍 NoSQL:一类新出现的数据库(not only sql),它的特点: 1.  不支持SQL语法 2.  存储结构跟传统关系型数 ...

  7. 1.NoSql简介

    NoSQL,指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以 ...

  8. python 基础 10.0 nosql 简介--redis 连接池及管道

    一. NOSQL 数据库简介 NoSQL 泛指非关系型的数据库.非关系型数据库与关系型数据库的差别 非关系型数据库的优势: 1.性能NOSQL 是基于键值对的,可以想象成表中的主键和值的对应关系,而且 ...

  9. NoSQl简介(转)

    NoSQL,全称是“Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的目的是为了大规模web应用,这场全新的数据库革命运动 ...

  10. NoSQL 简介

    NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统( ...

随机推荐

  1. 关于Go你不得不知道的小技巧

    目录 Go 箴言 Go 之禅 代码 使用 go fmt 格式化 多个 if 语句可以折叠成 switch 用 chan struct{} 来传递信号, chan bool 表达的不够清楚 30 * t ...

  2. 解决linux mint内置无线网卡失效问题

    前言 同学安装了linux mint,但是内置的无线网卡失效,只能通过有线网卡连接,经过查询得到不是缺少驱动的问题,是内核不支持 解决办法 sudo apt install linux-generic ...

  3. from 表单非空验证以及多表单提交

    开发中我们常用到$('#formid').serialize()方法进行表单序列化提交,但也相应催生了表单的非空严重以及多表单提交. form html: <form id="form ...

  4. MySQL数据库下载以及启动软件的详细步骤

    第一步>>>在浏览器上百度上搜索MySQL 如何判断官网?有官网两个字的或者纯英文解释的大概率就是官网 第二步>>>点击DOWNLOAWDS 第三步>> ...

  5. 【重难点整理】通过kafka的全过程叙述kafka的原理、特性及常见问题

    一.kafka的实现原理 1.逻辑结构 2.组成 生产者:生产消息,来自服务.客户端.端口-- 消息本身:消息主体 topic主题:对消息的分类,例如数仓不同层中的不同类型数据(订单.用户--):自带 ...

  6. 【每日一题】【动态规划】2022年1月30日-NC127 最长公共子串

    描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串 题目保证str1和str2的最长公共子串存在且唯一. 方法1:dp数组存子串 import java.util.*; public ...

  7. Python Excel 处理模块 : OpenPyXL

    OpenPyXL模块使用方法 以下是介绍OpenPyXL的基本使用,不涉及样式和合并单元格的跨行操作 一般来说,对于大名鼎鼎的xlrd,xlwt和xlutils三个模块,Excel操作有3个基本状态 ...

  8. Vue快速上门(2)-模板语法

    VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.模板语法 1.1.template模板 <template>是H5 ...

  9. kestrel网络编程--开发redis服务器

    1 文章目的 本文讲解基于kestrel开发实现了部分redis命令的redis伪服务器的过程,让读者了解kestrel网络编程的完整步骤,其中redis通讯协议需要读者自行查阅,文章里不做具体解析. ...

  10. C#深拷贝方法

    概述 为什么要用到深拷贝呢?比如我们建了某个类Person,并且实例化出一个对象,然后,突然需要把这个对象复制一遍,并且复制出来的对象要跟之前的一模一样,来看下我们一般会怎么做. 方法一(利用反射实现 ...