Redis01-NoSql简介(狂神说学习笔记)

知识点

  • nosql
  • 阿里巴巴架构演进
  • Nosql数据模型
  • Nosql四大分类
  • CAP
  • BASE
  • Redis入门
  • Redis安装(Windows & Linux)
  • 五大基本数据类型
    • String
    • List
    • Set
    • Hash
    • Zset
  • 三种特殊数据类型
    • geo
    • hyperlogog
    • bitmap
  • Redis配置详解
  • Redis持久哈
    • RDB
    • AOF
  • Redis事务操作
  • Redis实现订阅发布
  • Redis主从复制
  • Redis哨兵模式
  • 缓存穿透以及解决方案
  • 缓存击穿以及解决方案
  • 缓存雪崩以及解决方案
  • 基础API之 Jedis详解
  • SpringBoot集成Redis
  • Redis的实践分析

一、NoSql概述

为什么要用Nosql

单机时代的Mysql

90年代,网站的访问量不大,单个数据库够用。但是随着用户的增多,出现了以下问题

  1. 数据量增加到一定程度,单机数据库就放不下了
  2. 数据的索引(B+ Tree),一个机器内存也存放不下
  3. 访问量变大后(读写混合),一台服务器承受不住。

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

网站中80%情况都在读,因此使用缓存保证读取的效率。优化的过程:

  1. 优化数据库的数据结构和索引(难度大)
  2. 文件缓存,通过IO流获取每次都访问数据库效率高,但是流量爆炸式增长的时候IO流也受不了
  3. Memcache,当时的热门技术,在数据库和数据库访问层之间加上一层缓存,第一次访问查询数据库,将结果保存到缓存中 。后续查询缓存中有就直接拿走,效率显著提升。
    在这里插入图片描述

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

对于现在的很多公司来说用的很少了。
在这里插入图片描述

最近年代

如今的数据喷井式增长,各种各样的数据出现(定位数据,图片,等等)。在这种情况下关系型数据库RDBMS无法满足大数据的需求,但是NoSql可以很容易解决这些问题。

现在用户访问先通过企业 的防火墙,再通过负载均衡处理,访问到服务器以后,服务器根据需求访问各种数据库,其中包括关系型数据库,图片数据库,视频流数据库等等,
在这里插入图片描述

什么是Nosql

Nosql = Not Only Sql
Not Only Structured Query Language

关系型数据库: 列 + 行 同一个表下的数据结构是一样的

非关系型数据库: 数据存储没有固定的格式, 并且可以进行横向扩展

NoSql特点

  1. 方便扩展 (数据之间没有关系,很好扩展)
  2. 大数据量,高性能(Redis一秒可以写8w次, 读11w次。 NoSql的缓存记录级是一种细粒度的缓存,性能比较高)
  3. 数据类型是多样的(不需要事先设计数据库,随取随用)
  4. 传统的 RDBMS 和 NoSQL
    传统的 RDBMS(关系型数据库)
    - 结构化组织
    - SQL
    - 数据和关系都存在单独的表中 row col
    - 操作,数据定义语言
    - 严格的一致性
    - 基础的事务
    - ...
    
    Nosql
    - 不仅仅是数据
    - 没有固定的查询语言
    - 键值对存储,列存储,文档存储,图形数据库(社交关系)
    - 最终一致性
    - CAP定理和BASE
    - 高性能,高可用,高扩展
    - ...
    

大数据时代的 3V 和 3高

  • 3V:海量Velume 多样 Variety 实时 Velocity
  • 3高:高并发 高可扩 高性能

NoSql四大分类

KV键值对:

  • 新浪: Redis
  • 美团:Redis + Tair
  • 阿里、百度:Redis + memecache

文档型数据库(bson格式)

  • MongoDB(一般必须要掌握的)
    • MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量文档
    • MongoDB是一个介于关系型数据库和非关系型数据库之间的产品。MongoDB是非关系型数据库中功能最丰富的,NoSQL中最像关系型数据库的
  • ConthDB

列存储数据库

  • HBase(大数据必学)
  • 分布式文件系统

图关系数据库(用于广告推荐,社交网络)

  • Neo4j, InfoGrid

四大Nosql数据库的对比

在这里插入图片描述


版权声明:本文为weixin_43664712原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。