您现在的位置是:首页 > 编程 > 

【Redis】001

2025-07-27 23:53:59
【Redis】001 一、数据库演进(以前)2020年了,我们现在处于大数据时代;大数据:一般的数据库无法进行分析处理了!2006年Hadoop发布;2020年了,必须精通Spring Boot + Spring Cloud才有竞争力!1、单机MySQL的时代90年代,一个基本的网站访问量一般不是太大,这个时候一个数据库完全足够了;那个时候更多的是使用静态网页html,服务器根本没有压力;思考一下

【Redis】001

一、数据库演进(以前)

2020年了,我们现在处于大数据时代

大数据:一般的数据库无法进行分析处理了!2006年Hadoop发布;

2020年了,必须精通Spring Boot + Spring Cloud才有竞争力!

1、单机MySQL的时代

90年代,一个基本的网站访问量一般不是太大,这个时候一个数据库完全足够了;

那个时候更多的是使用静态网页html,服务器根本没有压力;

思考一下:这种情况下我们网站的瓶颈是什么?

①数据量如果太大,一台机器放不下了;

②数据的索引(MySQL超过00万条数据,就要建立索引,B + Tree)一台机器内存也放不下;

③如果访问量(读写混合)比较大,一台服务器无法承受;

只要出现以上三个问题之一,就必须晋级!

2、“Memcached(缓存) + MySQL + 垂直拆分(读写分离)”时代

网站80%的情况都是在读取,如果所有的读取都去查询数据库的话特别麻烦且耗费资源!所以我们想将数据缓存起来,当其他用户再次查询该数据的时候直接从缓存获取,以减轻服务器压力,提高效率;

发展过程:优化数据结构和索引——文件缓存(IO)——Memcached(当时最热门的技术);

真正的人才并不去大公司,我们的竞争对手并不是人才,而是那些图安稳又踏实的人(老实人)!

二、当今的企业架构分析

1、分库分表 + 水平拆分 + MySQL集

技术和业务在发展的同时对人的要求也越来越高了!

本质:数据库 = 读 + 写;

早些年MyISAM:表锁(100万条数据,如果要查张三的密码要把整张表锁起来,特别影响效率,无法适应高并发!)

转战Innodb:行锁;

再后来:使用分库分表来解决写的压力,不同的业务存放在不同的数据库表中,MySQL在那个年代退出了表分区,但使用并不广泛;

MySQL集:很好满足了那个年代的需求;

2、当今时代

技术爆炸:2010年(按键手机+Android雏形)——2020年(Android发展到顶点,即将落幕,马上进入万物互联时代);

定位、实时热榜、天猫双11实时数据大屏等等,MySQL等关系型数据库已经无法满足需求,因为数据量大、变化快;

新型数据库:图形数据库、JSO数据库;

如某篇爆款文章,瞬间阅读量10w+,拿到访问了10w+次数据库吗?肯定不是!这些数据会预先存到缓存里面,每过一段时间进行持久化罢了!否则数据库压力就太大了!

有时候存储一些比较大的文件,如博客、图片等等,数据库很大,效率很低,如果有一种数据库专门用来存储此类数据,MySQL的压力就会很小了(研究如何解决这些问题),大数据的IO压力下,表几乎无法更改!

目前一个基本的互联网项目的样子:
为什么要用oSQL?

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

这个时候我们需要oSQL数据库,可以很好地处理以上的情况!

三、到底什么是oSQL

1、oSQL

oSQL = ot Only SQL,不是没有SQL。而是不仅仅是SQL!

关系型数据库:表格、行、列;

泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难满足web2.0时代的要求!以前,那些超大规模高并发的社区,暴露除了很多难以克服的问题,oSQL在当今大数据环境下发展地十分迅速,Redis是发展最快的,是必须掌握的技术!

很多的数据类型如用户信息、社交网络、地理位置、图片等等,这些数据类型的存储不需要一个固定的格式,不需要多余的操作就可以横向扩展;

2、oSQL特点

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

大数据量高性能(1秒可以写8万次,可以读取11万次,oSQL的缓存是一种细粒度的缓存,性能高!);

数据类型是多样型的(不需要事先设计数据库,随取随用;数据量非常大的表,很多人无法设计数据库);

传统的RDBMS和oSQL的区别:

传统的RDBMS:

代码语言:javascript代码运行次数:0运行复制
1、结构化组织;

2、SQL;

、数据和关系都存在单独的表中:行、列;

4、数据操作语言、数据定义语言;

5、严格的一致性;

oSQL:

代码语言:javascript代码运行次数:0运行复制
1、不仅仅是数据;

2、没有固定的查询语言;

、键值对存储,列存储,文档存储,图形数据库(社交关系);

4、最终一致性;

5、CAP定理 和 BASE (异地多活);

6、高性能、高可用、高可扩展;

7、等等;
四、了解(V + 高)

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

V:海量Velume、多样Variety、实时Velocity;

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

高:高并发、高性能(保证体验和效率)、高可扩(随时拆分、机器不够了、可以扩展机器);

五、真正在公司中的实践

oSQL + 关系型数据库;

阿里巴巴架构;

1、商品图

2、技术解析

商品基本信息:

名字、价格、商品信息等等;

关系型数据库就可以解决:MySQL/Oracle;

淘宝内部用的MySQL不是大家用的MySQL,淘宝内部用的MySQL已经是被修改过的;

推荐文章:《阿里云的这疯子》;

商品的描述、评论(文字多):

存储在文档型数据库中,Redis/mongoDB;

图片:

分布式文件系统FastDFS;

淘宝自己的TFS;

Google的GFS;

Hadoop的HDFS;

阿里云的OSS云储存;

商品的关键字:

搜索引擎 solr elasticsearch;

ISearch:多隆(阿里的第一位程序员、技术大佬、阿里扫地僧);

(所有牛逼的人都有一段苦逼的经历,但是你只要像一样坚持,终将牛逼!)

商品热门的波段信息:

内存数据库;

Redis、Tair、Memache等等;

商品交易、外部的支付接口:

三方应用;

总结:

一个简单的网页背后的技术一定不是大家所想的那么简单!

、大型互联网应用的问题

存在问题:
  • 数据类型太多;
  • 数据源太多,经常重构;
  • 数据要改造、大面积改造;
解决问题:

等等;

思想的提高远远大于知识的学习!

六、oSQL的四大分类

1、KV键值对型数据库

新浪:Redis

美团:Redis + Tair;

阿里、百度:Redis + Memache;

2、文档型数据库(bson和json一样)

MongoDB(一般必须要掌握);

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

ConthDB;

、列存储数据库

HBase

分布式文件系统;

4、图形数据库

不是存图片的,而是存关系的,比如社交网络、知识图谱等等;

eo4j,InfoGrid;

5、四种类型的oSQL对比

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除数据数据库nosqlredis关系型数据库

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1198284.html

相关标签:无
上传时间: 2025-07-23 11:14:35
留言与评论(共有 11 条评论)
本站网友 天津华大基因
7分钟前 发表
不是没有SQL
本站网友 论坛会员
0秒前 发表
数据定义语言; 5
本站网友 昆明健身房
29分钟前 发表
传统的关系型数据库很难满足web2.0时代的要求!以前
本站网友 去鱼尾纹
13分钟前 发表
一台服务器无法承受;只要出现以上三个问题之一
本站网友 羟基脲
16分钟前 发表
而是那些图安稳又踏实的人(老实人)!二
本站网友 成都电影票团购
3分钟前 发表
如有侵权请联系 cloudcommunity@tencent 删除前往查看数据数据库nosqlredis关系型数据库
本站网友 桥西区二手房
26分钟前 发表
很多人无法设计数据库);传统的RDBMS和oSQL的区别:传统的RDBMS:代码语言:javascript代码运行次数:0运行复制1
本站网友 重庆租房网
14分钟前 发表
数据库很大
本站网友 天花板效应
29分钟前 发表
数据库演进(以前)2020年了
本站网友 医院痤疮
4分钟前 发表
如果要查张三的密码要把整张表锁起来