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;

区别

posted @ 2021-02-13 18:58  shamozhicheng  阅读(76)  评论(0编辑  收藏  举报