天天看点

NoSQL 入门和概述

1、入门概述

(1)为什么用 NoSQL

下面按顺序逐步演进!!!

I、单机 MySQL
NoSQL 入门和概述
II、Memcached(缓存) + MySQL + 垂直拆分
NoSQL 入门和概述
III、MySQL 主从读写分离
NoSQL 入门和概述
IV、分表分库 + 水平拆分 + MySQL 集群
NoSQL 入门和概述
V、MySQL 的扩展性瓶颈
NoSQL 入门和概述
VI、今天是什么样子
NoSQL 入门和概述
VII、为什么使用 NoSQL
NoSQL 入门和概述

(2)NoSQL 是什么

NoSQL 入门和概述

(3)NoSQL 能干嘛

  • 易扩展:NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性,数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
  • 大数据量高性能:NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache,每次表的更新 Cache 就失效,是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NoSQL 在这个层面上来说就要性能高很多了。
  • 多样灵活的数据模型:NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,

    增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

  • 传统 RDBMS VS NOSQL:
    • RDBMS
      • 高度组织化结构化数据
      • 结构化查询语言(SQL)
      • 数据和关系都存储在单独的表中。
      • 数据操纵语言,数据定义语言
      • 严格的一致性
      • 基础事务
    • NoSQL
      • 代表着不仅仅是 SQL
      • 没有声明性查询语言
      • 没有预定义的模式
      • 键 - 值对存储,列存储,文档存储,图形数据库

(4)常见的 NoSQL 数据库

  • Redis
  • Memcache
  • MongDB

2、3 V + 3 高

(1)大数据时代的 3 V

  • 海量 Volume
  • 多样 Variety
  • 实时 Velocity

(2)互联网需求的 3 高

  • 高并发
  • 高可用
  • 高性能

3、NoSQL 数据模型简介

(1)聚合模型

  • key - value 键值
  • Bson
  • 列族
  • 图形

4、NoSQL 数据库的四大分类

(1)key - value 键值

  • 新浪:BerkeleyDB + redis
  • 美团:redis + tair
  • 阿里、百度:memcache + redis

(2)文档型数据库(Bson 格式比较多)

  • CouchDB
  • MongoDB

(3)列存储数据库

  • Cassandra, HBase
  • 分布式文件系统

(4)图关系数据库

  • 朋友圈、社交网络、广告推荐
  • Neo4J, InfoGrid

(5)四者对比

NoSQL 入门和概述

5、在分布式数据库中 CAP 原理 + Base

(1)传统的 ACID

  • A (Atomicity) 原子性:原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
  • C (Consistency) 一致性:一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
  • I (Isolation) 隔离性:所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。
  • D (Durability) 持久性:持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

(2)CAP

  • C:Consistency(强一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分区容错性)

(3)CAP 的 3 进 2

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。

所以我们只能在一致性和可用性之间进行权衡,没有 NoSQL 系统能同时保证这三点。

NoSQL 入门和概述

(4)经典 CAP 图

NoSQL 入门和概述

(5)Base

NoSQL 入门和概述

(6)分布式 + 集群简介

NoSQL 入门和概述