开发者学堂课程【Redis 入门到精通(基础篇): redis 入门-Nosql 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13366
Redis 入门-Nosql 介绍
内容介绍
一、Redis 简介
二、Nosql
三、解决方案(电商场景)
一、Redis 简介
中国的软件行业发展周期并不长,发展过程中有一些不太好看的东西。
(1)中国被世界黑的最惨的一天:
2007年10月30日,北京奥运会门票面向境内公众第二阶段预售正式启动,上午一开始,公众提交申请空前踊跃。
上午9时至10时,官方票务网站的浏览量达到了800万次,票务呼叫中心热线从9时至10时的呼入量超过了380万人次。
由于瞬间访问数量过大,技术系统应对不畅,造成很多申购者无法及时提交申请,为此北京奥组委票务中心对广大公众未能及时、便捷地实现奥运票预订表示歉意。
在2008年奥运会开幕前在网上进行预售,08年中国的互联网发展算是中低速,当我们把这个系统面向全世界开放时会受到全世界的冲击,导致网站崩溃。
(2)不可回避的问题:
奥运会门票预售系统开放的第一天,上午9点正式开始售票到中午12点,3个小时内,票务网站浏览次数达到2000万次。
这个不仅仅在奥运会预售系统,生活中的春运买票,要么崩溃中,要么走在在崩溃的路上,我们可能不会一直去关注,但是也会有所了解,对应的问题就是访问量大。
一个神奇的网站:
大型翻车现场:
问题现象:
1、海量用户
2、高并发
罪魁祸首——关系型数据库
性能瓶颈:
磁盘IO性能低下(较难突破,无法满足我们的使用)
扩展瓶颈:
数据关系复杂,扩展性差,不便于大规模集群(可能几张,然后就数十张,再然后上百张数千张,数量越来越多,树形结构,相互交叉,错综复杂不太利于我们做集群)
解决思路
降低磁盘IO次数,越低越好 ——内存存储
去除数据间的关系,越简单越好(以此降低扩展的可变性) ——不存储关系,仅存储数据
解决思路:Nosql
二、Nosql
Nosql:
即Not-Only-SQL(泛指非关系型的数据库),作为关系型数据库的补充。
作用:
应对基于海量用户和海量数据结构前提下的数据处理问题。
特征:
可扩容,可伸缩;
大数据量下高性能;
灵活的数据模型;
高可用。
常见的Nosql数据库:
Redis
Memcache
HBase
MongoDB
简单来说就是不要仅依靠 SQL 提出的,还是要依靠硬盘,不能仅使用内存,所以说是补充,不是任何情况都使用,还是基于1、海量用户,2、高并发。
特征方面更多的是相对来说,并不是绝对的某一方面。
三、解决方案(电商场景)
(1) 商品基本信息
名称
价格
厂商
(MySQL 是首选)
(2) 商品附加信息
描述
详情
评论
(一般使用 MongoDB)
(3) 图片信息
分布式文件系统(不同的电商平台使用的不同)
(4) 搜索关键字(有专用存储,ES、Lucene、solr等)
(5) 热点信息(阶段性的,并不单独出现,包含前四点)
高频(访问量特别高)
波段性
(Redis、memcache、tair)
基本形象存储在 MySQL 中,然后需要进行连接,将数据库连接成整体,有一个总的来对外进行服务,再进行提交到上一层,这是进行业务划分,将一些访问度较高的放到这里,这时就对我们的 Nosql 进行了一个大概的了解,现在所处的位置以及后续要进行处理的位置有哪些东西。