NoSQL 入门和概述

1、入门概述

(1)为什么用 NoSQL

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


I、单机 MySQL

在这里插入图片描述


II、Memcached(缓存) + MySQL + 垂直拆分

在这里插入图片描述


III、MySQL 主从读写分离

在这里插入图片描述


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

在这里插入图片描述


V、MySQL 的扩展性瓶颈

在这里插入图片描述


VI、今天是什么样子

在这里插入图片描述


VII、为什么使用 NoSQL

在这里插入图片描述



(2)NoSQL 是什么

在这里插入图片描述



(3)NoSQL 能干嘛

  • 易扩展NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性,数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
  • 大数据量高性能NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache,每次表的更新 Cache 就失效,是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NoSQLCache记录级的,是一种细粒度的 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)四者对比

在这里插入图片描述

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 系统能同时保证这三点。
在这里插入图片描述



(4)经典 CAP 图

在这里插入图片描述



(5)Base

在这里插入图片描述



(6)分布式 + 集群简介

在这里插入图片描述



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
第一部分  NoSQL入门 第1章  NoSQL的概念及适用范围 2 1.1  定义和介绍 3 1.1.1  背景与历史 3 1.1.2  大数据 5 1.1.3  可扩展性 7 1.1.4  MapReduce 8 1.2  面向列的有序存储 9 1.3  键/值存储 11 1.4  文档数据库 14 1.5  图形数据库 15 1.6  小结 16 第2章  NoSQL上手初体验 17 2.1  第一印象——两个简单的例子 17 2.1.1  简单的位置偏好数据集 17 2.1.2  存储汽车品牌和型号数据 22 2.2  使用多种语言 30 2.2.1  MongoDB驱动 30 2.2.2  初识Thrift 33 2.3  小结 34 第3章  NoSQL接口与交互 36 3.1  没了SQL还剩什么 36 3.1.1  存储和访问数据 37 3.1.2  MongoDB数据存储与访问 37 3.1.3  MongoDB数据查询 41 3.1.4  Redis数据存储与访问 43 3.1.5  Redis数据查询 47 3.1.6  HBase数据存储与访问 50 3.1.7  HBase数据查询 52 3.1.8  Apache Cassandra数据存储与访问 54 3.1.9  Apache Cassandra数据查询 55 3.2  NoSQL数据存储的语言绑定 56 3.2.1  Thrift 56 3.2.2  Java 56 3.2.3  Python 58 3.2.4  Ruby 59 3.2.5  PHP 59 3.3  小结 60 第二部分  NoSQL基础 第4章  理解存储架构 62 4.1  使用面向列的数据库 63 4.1.1  使用关系型数据库中的表格和列 63 4.1.2  列数据库对比RDBMS 65 4.1.3  列数据库当做键/值对的嵌套映射表 67 4.1.4  Webtable布局 70 4.2  HBase分布式存储架构 71 4.3  文档存储内部机制 73 4.3.1  用内存映射文件存储数据 74 4.3.2  MongoDB集合和索引使用指南 75 4.3.3  MongoDB的可靠性和耐久性 75 4.3.4  水平扩展 76 4.4  键/值存储MemcachedRedis 78 4.4.1  Memcached的内部结构 78 4.4.2  Redis的内部结构 79 4.5  最终一致性非关系型数据库 80 4.5.1  一致性哈希 81 4.5.2  对象版本 82 4.5.3  闲话协议和提示移交 83 4.6  小结 83 第5章  执行CRUD操作 84 5.1  创建记录 84 5.1.1  在以文档为中心的数据库中创建记录 85 5.1.2  面向列数据库的创建操作 91 5.1.3  键/值映射表的创建操作 93 5.2  访问数据 96 5.2.1  用MongoDB访问文档 96 5.2.2  用HBase访问数据 97 5.2.3  查询Redis 98 5.3  更新和删除数据 98 5.3.1  使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2  有限原子性和事务完整性 99 5.4  小结 100 第6章  查询NoSQL存储 101 6.1  SQL与MongoDB查询功能的相似点 101 6.1.1  加载MovieLens数据 103 6.1.2  MongoDB中的MapReduce 108 6.2  访问HBase等面向列数据库中的数据 111 6.3  查询Redis数据存储 113 6.4  小结 116 第7章  修改数据存储及管理演进 117 7.1  修改文档数据库 117 7.1.1  弱schema的灵活性 120 7.1.2  MongoDB的数据导入与导出 121 7.2  面向列数据库中数据schema的演进 124 7.3  HBase数据导入与导出 125 7.4  键/值存储中的数据演变 126 7.5  小结 126 第8章  数据索引与排序 127 8.1  数据库索引的基本概念 127 8.2  MongoDB的索引与排序 128 8.3  MongoDB里创建和使用索引 131 8.3.1  组合与嵌套键 136 8.3.2  创建唯一索引和稀疏索引 138 8.3.3  基于关键字的搜索和多重键 139 8.4  CouchDB的索引与排序 140 8.5  Apache Cassandra的索引与排序 141 8.6  小结 143 第9章  事务和数据完整性的管理 144 9.1  RDBMS和ACID 144 9.2  分布式ACID系统 147 9.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值