侧边栏壁纸
  • 累计撰写 106 篇文章
  • 累计创建 19 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

一、Nosql概述(Reids零基础笔记)

zero
2020-04-16 / 0 评论 / 0 点赞 / 26 阅读 / 6324 字
温馨提示:
本文最后更新于 2024-07-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

为什么要用NPsql?

单机MySQL年代
一、Nosql概述(Reids零基础笔记) -图片一.png

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

那个时候,更多的去使用静态网页 HTML 服务器根本没有太大的压力

思考一下,整个网站的瓶颈是什么?

  1. 数据量如果太大、一个机器放不下

  2. 数据的索引(B+Tree),一个机器内存也放不下

  3. 访问量(读写混合),一个服务器承受不了

只要开始出现以上的情况的一种,那么必须升级


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

网站80%的情况都在读,每次都要去查询数据库的话就十分的麻烦,所以我们希望减轻数据的压力,我们可以使用缓存来保证效率

发展过程:优化数据结构和索引-->文件缓存(IO)--> Memcached(当时最热门的技术)
一、Nosql概述(Reids零基础笔记) -图片二.png


分库分表 + 水平拆分 + MySQL集群

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

本质:数据库(读、写)

早些年MyISAM:表锁,十分影响效率,高并发下就会出现严重的锁问题。

转战Innodb:行锁

慢慢的就开始使用分库分表(订单、用户、支付)来解决写的压力,MySQL推出表分区。但是并没有多少公司使用。

公司一般使用:MySQL集群,很好满足需求
一、Nosql概述(Reids零基础笔记) -图片三.png


如今最近的年代

2010-2020 十年之间,世界已经发生了翻天覆地的变化。

MySQL等关系数据库已经满足不了需求了,现在数据变化多样。

MySQL有的是用它来存储较大的文件、博客、图片等,数据表很大,效率就很低。

经网上专家团队们的测试,在大数据的IO压力下,表几乎没法更新。

在这种情况下诞生一种数据库来专门处理这种数据,从而减少MySQL的压力就变得十分重要了。


目前一个基本的互联网项目

一、Nosql概述(Reids零基础笔记) -图片四.png


为什么要用NoSQL

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

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

什么是NoSQL

NoSQL

NoSQL = Not Only SQL(不仅仅是SQL)

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

泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0时代,尤其是超大规模的高并发的社区,暴露出很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Reids是发展最快的,而且我们当下必须要掌握的一门技术。


NoSQL特点

解耦

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

  2. 大数据量高性能(Redis 一秒写8万次,读取11万次,NoSQL的缓存记录级,是一种细颗粒的缓存,性能会比较高)

  3. 数据类型是多样性的(不需要事先设计数据库,随去随用,如果是数据量十分大的表,很多人就无法设计了)

  4. 传统RDBMS 和 NoSQL

传统的 RDBMS
    - 结构化组织
    - SQL
    - 数据和关系都存在单独的表中
    - 操作操作,数据定义语言
    - 严格的一致性
    - 基础的事务
    - ....
Nosql
    - 不仅仅是数据
    - 没有固定的查询语言
    - 键值对存储,列存储,文档存储,图形数据库(社交关系)
    - 最终一致性
    - CAP定理和BASE    (异地多活)初级架构师
    - 高性能,高可用,高扩展
    - ....

了解:3V + 3高

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

  1. 海量Volume

  2. 多样Variety

  3. 实时Velocity

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

  1. 高并发

  2. 高可扩

  3. 高性能

阿里巴巴演进分析

如果你未来相当一个架构师:没有什么是加一层解决不了的

# 1、商品的基本信息
    名称、价格、商家信息;
    关系型数据库就可以解决了,Mysql / Oracle
    淘宝内部的 MySQL 不是大家用的 MySQL

# 2、商品的描述、评论(文字比较多)
    文档型数据库中,MongoDB

# 3、图片
    分布式文件系统 FastDFS
    - 淘宝自己的 TFS
    - Gooale的 GFS
    - Hadoop HDFS
    - 阿里云的 OSS

# 4、商品的关键字(搜索)
    - 搜索引擎 solr elasticsearch
    - ISerach: 多隆
    所有牛逼的人都有一段苦逼的岁月,但是你只要像对的目标不断前行(SB一样的)去坚持,终将牛逼

# 5、商品热门的波段信息
    - 内存数据库
    - Redis Tair Memache

# 6、商品的交易、外部的支付接口
    - 三方应用

NoSQL的四大分类

KV键值对:

  • 新浪:Redis

  • 美团:Redis + Tair

  • 阿里、百度:Redis + memecache

文档型数据库(bson格式 和 json一样)

  • MongoDB(一般必须要掌握)

    • MongoDB 是一个基于分布式存储的数据库,C++编写,只要用来处理大量的文档

    • MongoDB 是一个介于关系型数据库和非关系型数据中中间的产品,MongoDB是非关系型数据库中功能最丰富,最像关系型数据库的

  • ConthDB

列存储数据库

  • HBase

  • 分布式文件系统

图关系数据库
一、Nosql概述(Reids零基础笔记) -图片五.png

  • 他不是存图形,放的是关系,比如:朋友圈社交网络,朋友圈

  • Neo4j,InfoGrid
    一、Nosql概述(Reids零基础笔记) -图片六.png

0

评论区