NoSQL(简介、历史)
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(简介、历史)的更多相关文章
- MongoDB(一):NoSQL简介、MongoDB简介
1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库. 1.2 为什么需 ...
- (原创)MongoDB之NoSQL简介
Nosql简介1.1系统对数据的需求 Nosql[Nosql主要用途大数据处理]的全称为”not only sql”,为非关系型数据库[非关系型数据库就是关系型数据库的所有特点都没有了, ...
- NoSQL 简介及什么是AICD
NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关 ...
- mongodb(一) NoSQL简介
NoSQL简介 写在前面,本文就是学习的记录笔记,大部分内容都属于参考,分享给大家 关系与非关系数据库 那么应该了解下影响关系数据库性能的主要原因: 在关系型数据库中,导致性能欠佳的最主 ...
- Nosql简介 Redis,Memchche,MongoDb的区别
本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis.Memchache.MongoDb和他们之间的区别.以下是本文章的阅读目录 一.Nosql介绍 1.Nosql简介 ...
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
1.Redis和nosql简介,api调用 14.1/ nosql介绍 NoSQL:一类新出现的数据库(not only sql),它的特点: 1. 不支持SQL语法 2. 存储结构跟传统关系型数 ...
- 1.NoSql简介
NoSQL,指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以 ...
- python 基础 10.0 nosql 简介--redis 连接池及管道
一. NOSQL 数据库简介 NoSQL 泛指非关系型的数据库.非关系型数据库与关系型数据库的差别 非关系型数据库的优势: 1.性能NOSQL 是基于键值对的,可以想象成表中的主键和值的对应关系,而且 ...
- NoSQl简介(转)
NoSQL,全称是“Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的目的是为了大规模web应用,这场全新的数据库革命运动 ...
- NoSQL 简介
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统( ...
随机推荐
- 实践案例:同程艺龙网的 Dubbo 升级经验总结
本篇为同程艺龙旅行网 Apache Dubbo 的实践案例总结.感兴趣的朋友可以访问官网了解更多详情,或搜索关注官方微信公众号 Apache Dubbo 跟进最新动态. 作者信息: 严浩:同程艺龙高级 ...
- 4.3:flume+Kafka日志采集实验
〇.目标 使用kafka和flume组合进行日志采集 拓扑结构 一.重启SSH和zk服务 打开终端,首先输入:sudo service ssh restart 重启ssh服务.之后输入下述命令开启zo ...
- JavaEE Day05 JDBC(用Java语言操作数据库)
今日内容 基本概念 快速入门 对JDBC中各个接口和类的详解 一.基本概念 1.概念:Java Database Connectivity:Java数据库连接,Java语言操作数据库 2.本质:官方( ...
- 【实时数仓】Day05-ClickHouse:入门、安装、数据类型、表引擎、SQL操作、副本、分片集群
一.ClickHouse入门 1.介绍 是一个开源的列式存储数据库(DBMS) 使用C++编写 用于在线分析查询(OLAP) 能够使用SQL查询实时生成分析数据报告 2.特点 (1)列式存储 比较: ...
- ChatGPT 可以联网了!浏览器插件下载
Twitter 用户 An Qu 开发了一款新的 Chrome 插件帮助 ChatGPT 上网,安装插件以后 ChatGPT 就可以联!网!了! 简单来说开启插件后,他可以从网上搜索信息,并且根据用户 ...
- [编程基础] Python列表解析总结
在本教程中,我们将学习使用Python列表解析(list comprehensions)相关知识 1 使用介绍 列表解析是一种基于现有列表创建列表的句法结构.列表解析提供了创建列表的简洁方法.通常需要 ...
- HBase详解(04) - HBase Java API使用
HBase详解(04) - HBase Java API使用 环境准备 新建Maven项目,在pom.xml中添加依赖 <dependency> <groupId>org.ap ...
- 如何通过Java应用程序将Word转为Excel
平时在工作中,很多小伙伴会习惯性地将文件保存为Word文档格式,但有时会发现某些文件如果保存成Excel表格可能会更好地呈现.例如有的文本在Word文本中不如在Excel工作表编辑计算方便,所以要把W ...
- 增强MybatisPlus拓展新功能 实战MybatisPlus大合集
mybatis-plus-max简介 MybatisPlusMax是MybatisPlus的增强包,秉承只拓展不修改的理念,对MybatisPlus做增强. 正如MybatisPlus是对MyBati ...
- Go+beego接入OSS上传
路由 f, h, err := c.GetFile("uploadFile") if err != nil { logx.Error("getfile err " ...