redis——数据库发展
redis——数据库发展
为什么要用nosql
1.单机mysql年代(数据量小)
这时候网站出现的瓶颈是什么?
1.数据量如果太大,一个机器放不下
2.数据的索引,一个机器内存也放不下
3.访问量(读写混合),一个服务器承受不了
只要你开始出现上面的情况,数据库必须要升级
2.Memcached(缓存)+mysql+垂直拆分(读写分离)
网站80%的情况都是在读,每次都要去查询数据库,很麻烦。为了减轻数据的压力,我们可以使用缓存来提高效率
发展过程:优化数据结构和索引---->文件缓存(IO)---->Memcashed(当时热门技术)
3.分库分表+水平拆分+MySql集群
本质:数据库(读,写)
4.现在
2010-2020十年之间,世界已经发生了巨变。(定位,音乐,热榜)
mysql等关系型数据库不够用!数据量很大,变化很快!
mysql有的使用它来存储一些比较大的文件,博客,图片!数据库表很大,效率很低!如果有一种数据库来专门处理这种数据
mysql压力就变得十分小(研究这些问题)
为什么用nosql
用户个人信息,社交网络,地理位置,用户自己产生的数据,用户日志等等爆发式增长
这时候我们需要使用NoSql数据库。
什么是NoSql
NoSQl=Not Only Sql (不仅仅是sql)
关系型数据库:表格,行,列
泛指非关系型数据库。超大规模的高并发。
NoSql特点
解耦
1.方便扩展(数据之间没有关系,很好扩展)
2.大数据量高性能(redis一秒钟写8万次,读11万次,缓存记录级,是一种细粒度的缓存,高性能)
3.数据类型是多样的!(不用设计数据库,随取随用)
4.传统RDBMS和NoSQL
3V+3高
3V 1.海量Velume
2.多样Variety
3.实时Velocity
3高 1.高并发
2.高可扩
3.高性能
公司实践,RDBMS+nosql一起使用的。
阿里架构发展史
![](https://img2020.cnblogs.com/blog/2298258/202102/2298258-20210213185305460-1843793906.png
架构师:没有什么加一层是解决不了的
1.商品的基本信息
名称、价格、商家信息
关系型数据库可以解决 MySql/Oracle
2.商品的描述、评论(文字比较多)
文档型的数据库,MongDB
3.图片
分布式文件系统 FastDFS
淘宝自己的 TFS
Gooale的 GFS
Hadoop HDFS
阿里云的 oss
4、商品的关键字(搜索)
-搜索引擎 solr elasticsearch
-Isearch 多隆
所有牛逼的人都有一段苦逼的岁月!但你只要像SB一样的去坚持,终将牛逼
##大型互联网应用问题
* 数据类型太多了
* 数据源繁多,经常重构
* 数据要改造,大面积改造
解决问题
NoSQL的四大分类
kv键值对:
新浪:Redis
美团:Redis+Tair
阿里、百度:Redis+memecache
文档型数据库(bson格式和json一样)
1.MongoDB(一般必须要掌握)
#MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档
#MongoDB是一个介于关系型数据库和非关系型数据库中间产品,MongoDB是菲关系数据库中功能最丰富的,是最像关系型数据库的。
2.ConthDB
列存储数据库
1.HBase
2.分布式文件系统
图形关系数据库
1.他不是存图形,放的是关系
2.Neo4j,infoGrid;