资讯详情

狂神redis笔记

B站视频

1、Nosql概述

1.1 为什么要用Nosql

在大数据时代,大数据库无法分析和处理 ! 06年出现hadoop

  1. 单机MySQL的年代

    [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-ynQwYATd-1649557816798)(C:\Users\acer\Desktop\微信截图_20220328162201.png)]

90年代,一个基本的网站访问量一般不会太大,单个数据库就足够了!

当时使用静态网页比较多Html 服务器压力不大

思考: 整个网站的瓶颈是什么?

  • 数据量如果太大,一个机器放不下
  • 数据的索引 (B tree),机器内存也放不下
  • 服务器无法承受访问量(读写混合)

只要出现上述三种情况之一,就必须晋升

  1. Memcached(缓存) MySQL 垂直拆分(读写分离)

80%的网站都在阅读,每次查询数据库都很麻烦!所以我们想减轻数据的压力,我们可以使用缓存来确保效率!

发展过程: 优化数据结构和索引–》文件缓存(IO)----->Memcached

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-tZALtXci-1649557816800)(C:\Users\acer\Desktop\微信截图_20220328163723.png)]

  1. 分库分表 水平拆分 MySQL集群

    随着技术和业务的发展,对人的要求越来越高

    本质: 数据库(读 写)

    1/3数据分别放在集群1、2、3中

    早些年MyISAM:表(在100万条数据下 记录查询 锁表)对效率影响很大!高并发会出现严重的锁问题

    转战Innodb: 行锁(每次查询,只锁这条线)

    订单、支付、用户(分库表)

    慢慢开始用分库分表来解决写作压力!

    MySQL集群满足了当时的需求

    [外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-bockiaTq-1649557816801)(C:\Users\acer\Desktop\微信截图_20220328164855.png)]

  2. 最近的年代

    MySQL关系数据库不够!数据量多,变化快!

    MySQL用于存储较大的文件和图片!数据库表很大,效率很低!如果有一个数据库来处理这些数据,MySQL的

    压力变小(研究如何处理) 大数据的IO在压力下,表几乎无法更改

  3. 目前,一个基本的互联网项目

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-s6jenyNe-1649557816802)(C:\Users\acer\Desktop\微信截图_20220328172454.png)]

为什么要用NoSQL!

用户个人信息、社交网络、地理位置。用户自己的数据、用户日志等爆炸性增长!

在这个时候,我们需要使用它NoSQL数据库的,NoSQL可以很好的处理以上的情况!

1.2 什么是NoSQL

NoSQL = not only SQL

关系数据库: 表格,行,列

随着非关系数据库的泛指web2.互联网的诞生!传统的关系数据库很难处理web2.0时代!尤其是超大规模高并发社区!

暴露出许多难以克服的问题,NoSQL在当今大数据环境下发展迅速,Redis发展最快,热。

许多数据用户的个人信息、社交网络和地理位置。这些数据类型的存储不需要一个固定的格式!水平扩展不需要额外的操作! Map<String,Object>

1.3 NoSQL特点

  • 扩展方便(数据无关,扩展好)

  • 高性能的大数据量(Redis 1s可写8万次,读11万次,NoSQL缓存记录级为细粒度缓存,性能较高)

  • 数据类型多样(不需要提前设计数据库 随取随用 若是数据量很大的表,很多人都无法设计)

  • 传统RDBMS和NoSQL

    传统的  RDBMS  结构化组织 SQL 数据和关系的数据和关系 数据操作,数据定义语言 严格的一致性 基础的事务 ... 
    NoSQL 不仅仅是数据 没有固定的查询语言 存储方法很多   键值对,列存储,文档存储 最终一致性 CAP定理  和 BASE  (异地多活! 高性能  高可用  高可扩展性 ... 

公司实践: NoSQL RDBMS一起使用是最强的

1.4 阿里巴巴进化分析

思考: 这么多数据都在一个数据库里吗?

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-X4yr88m5-1649557816803)(C:\Users\acer\Desktop\微信截图_20220328190141.png)]

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-lSLZwonu-1649557816804)(C:\Users\acer\Desktop\微信截图_20220328185800.png)]

to be 架构师: 加一层解决不了什么!

# 1.商品基本信息     名称、价格、商业信息     关系数据库可以解决  mysql/oracle  (淘宝去IOE)      淘宝内部的MySQL不是每个人都用的MySQL  #2、商品描述、评论(文字较多)     在文档数据库中 MongDB           #3、图片     分布式文件系统  FastDFS     淘宝自己的  TFS     Hadoop  HDFS     阿里云  oss           #4.商品关键词(搜索)     - 搜索引擎  solr elasticsearch     - ISearch  : 多隆       # 5.商品流行的波段信息     - 内存数据库     - Redis  Tair Memcached      # 6.商品交易、外部支付界面     - 三方应用  

一个简单的网页背后的技术不能像你想象的那么简单

大型互联网应用问题:

  • 数据类型太多了
  • 数据源多,重构频繁
  • 数据改造,大面积改造

解决问题:

[外链图片存储失败,源站可能有防盗链机制,建议保存图片直接上传(img-BHDfDjeH-1649557816806)(C:\Users\acer\Desktop\微信截图_20220328191920.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tlcxAZwo-1649557816807)(C:\Users\acer\Desktop\微信截图_20220328192702.png)]

1.5 NoSQL的四大分类

  • 新浪: redis

  • 美团: redis tair

  • 阿里,百度: redis memcache

锐单商城 - 一站式电子元器件采购平台