【NoSQL】NoSQL入门和概述 - 笔记

NoSQL入门和概述

BSON

BSON 是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。

优点:高并发的操作是不太建议有JOIN关联查询的,互联网公司用冗余数据来避免关联查询。分布式事务有多个库,是支持不了太多的并发的。使用NoSQL可以避开大量的JOIN关联查询。

聚合模型(区分于关系型数据库的int, varchar, …)

  • KV键值对
  • BSON
  • 列族
  • 图形

NoSQL数据库的四大分类

现在一些小公司的互联网技术,是一线互联网员工跳槽带出来的熟练技术,成为小公司的技术核心骨干,因为小公司试错成本较低,希望直接使用成熟可靠的技术/团队。大公司有比较大的试错空间,自己研究新技术。所以如果大公司用什么技术,慢慢地,这些技术就会流行起来。

KV键值:典型介绍

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

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

  • CouchDB
  • MongoDB:是一个基于分布式文件存储的数据库,C++编写,是一个介于关系型数据库与非关系型数据库之间的产品。可以看做是MySQL++

列存储数据库

  • Cassandra,Hbase:Hadoop使用
  • 分布式文件系统

图关系数据库:不是存放图片的,放的是关系。比如:朋友圈社交网络、广告推荐系统等。专注于构建关系图谱

  • Neo4J,Infogrid

四者对比
在这里插入图片描述

在分布式数据库中 CAP 原理 CAP+BASE

新技术都是在老技术上继承下来的

传统的ACID分别是什么?原子性、一执行、独立性、持久性
在这里插入图片描述

CAP:强一致性、可用性、分区容错性
在这里插入图片描述
在这里插入图片描述

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题,所以:P - 分区容忍性 是我们必须要实现的
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点

  • C:强一致性(例如,点赞数、评论数是否准确)
  • A:高可用性(例如,网站不能挂)
  • P:分布式容忍性(必须要有)

CA:传统Oracle数据库
AP:大多数网站架构的选择(弱一致性+AP)
CP:Redis、MongoDB

Redis的作用是帮MySQL,Oracle减负

一致性与可用性的抉择

在这里插入图片描述
比如,发一条微博之后,过几秒粉丝才能看到;但是自己能看到自己的(首先保证:读己之所写),但是别的小伙伴要等数据库传一下,实现强一致。
在这里插入图片描述

BASE

为了取得最终的一致性(双十一当天可能统计不准,但过几天一定要达到最终准确。)
在这里插入图片描述

分布式 + 集群简介

负载均衡:比如有多个tomcat,不同的请求分发给不同的tomcat处理
在这里插入图片描述
在这里插入图片描述

发布了552 篇原创文章 · 获赞 201 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/103848733