NoSQL基本内容

第一章 NoSQL

1.1 什么是NoSQL

NoSQL(Not Only SQL)即不仅仅是SQL,泛指非关系型的数据库,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。

1.2 NoSQL的类别

键值(key-value)存储数据库

说明:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。

Key/Value模型对于IT系统来说优势在于简单、易部署。

应用:内容缓存,主要用于处理大量数据的高访问负载。

产品:Tokyo Cabinet/Tyrant、==Redis==、Voldemort、Berkeley DB。

优势:快速查询。

劣势:存储数据的结构化较低。

列存储数据库

说明:这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列,这些列是由列家族来安排的。

应用:分布式文件系统。

产品:Cassandra,==HBase==,Riak。

优势:查找速度快,可扩展性强,更容易进行分布式扩展。

劣势:功能较低,具有局限性。

文档型数据库

说明:该类型的数据模型 是版本化的文档,半结构化的文档以特定的格式存储,如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。

应用:Web应用。

产品:CouchDB,==MongoDB==。

优势:查询效率较高。

劣势:数据结构复杂,缺乏统一查询语法。

图形数据库

说明:图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST格式的数据接口或者查询API。

应用:社交网络。

产品: ==Neo4j==,InfoGrid,Infinite Graph。

优势:利用图结构相关算法。

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

1.3 NoSQL适应场景

1、数据模型比较简单

2、需要灵活性更强的IT系统

3、对数据库性能要求较高

4、不需要高度的数据一致性

5、对于给定的key,比较容易映射出复杂的关系和环境

6、取最新的数据(排行)

7、数据缓存

1.4 在分布式数据库中CAP原理

1.4.1 传统的ACID是什么

关系型数据库遵循==ACID==规则,事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:

  1. A (Atomicity) 原子性

    指事务里的所有操作要么都成功,要么都失败。事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

  2. C (Consistency) 一致性

    指数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。

  3. I (Isolation) 隔离性

    指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

  4. D (Durability) 持久性

    是指一旦事务提交后,它所做的修改将会永久的保存在数据库中,即使出现宕机也不会丢失。

1.4.2 CAP

C 强一致性

A 可用性

P 分区容错性

CAP 理论是指在分布式存储系统中,最多只能实现上述两点。由于当前的网络硬件存在延迟丢包等问题,所以分区容忍性是我们必须要实现的。所以我们只能在一致性和可用性之间进行权衡,没有任何的SQL系统能够兼顾这三点。

CA 传统sql数据库

AP 大多数网站架构的选择

CP nosql数据库

注意:在做分布式架构的时候必须做出取舍。==一致性和可用性之间取一个平衡==。对于大多数web应用,其实并不需要强一致性。因此牺牲C换取P,这是目前分布式数据库产品的方向。

image-20200701101040717

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

  • ==CA== - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。

  • ==CP== - 满足一致性,分区容忍性的系统,通常性能不是特别高。

  • ==AP== - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

1.5 什么是BASE

BASE 是为了解决关系型数据库强一致性引起的问题而导致可用性降低而提出的解决方案.

基本可用(==B==asically ==A==vailable) 软状态(==S==oft state) 最终一致(==E==ventually consistent)

它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/247099.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# cad2016选择封闭多段线获取多段线面积

在C#中,如果你想要通过AutoCAD .NET API来选择封闭多段线内部的其他闭合多段线并计算它们各自的面积,可以遵循以下基本步骤: 1、加载AutoCAD库: 确保你的C#项目引用了Autodesk.AutoCAD.Interop和Autodesk.AutoCAD.Interop.Common…

Jmeter连接数据库报错Cannot load JDBC driver class‘com.mysql.jdbc.Driver’解决

问题产生: 我在用jmeter连接数据库查询我的接口是否添加数据成功时,结果树响应Cannot load JDBC driver class com.mysql.jdbc.Driver 产生原因: 1、连接数据库的用户密码等信息使用的变量我放在了下面,导致没有取到用户名密码IP等信息,导致连接失败 2、jmeter没有JDB…

《动手学深度学习(PyTorch版)》笔记4.7

Chapter4 Multilayer Perceptron 4.7 Forward/Backward Propagation and Computational Graphs 本节将通过一些基本的数学和计算图,深入探讨反向传播的细节。首先,我们将重点放在带权重衰减( L 2 L_2 L2​正则化)的单隐藏层多层…

opencv#33 边缘检测

边缘检测原理 图像的每一行每一列都可以看成是一个连续的信号经过离散后得到的数值,例如上图左侧给出的图像由黑色到白色的一个信号,也就是图像中某一行像素变化是由黑色逐渐到白色,我们将其对应在一个坐标轴中,将像素值的大小对应…

【Java基础】聊聊你不知道反射的那些事

在编程语言中,反射是一个绕不过的一个话题,反射、注解、动态代理是支撑框架运行的核心技术。 在Spring中,IOC利用反射实现,创建对象。AOP利用动态代理实现,实现切面编程,配置利用注解实现。所以继上一篇&am…

代码随想录算法训练营第32天 | 122.买卖股票的最佳时机II 55.跳跃游戏 45.跳跃游戏II

买卖股票的最佳时机II 贪心思路 要想使用贪心算法解决此问题,意识到利润是可分解的很关键。比如[1,2,3,4,5]这个输入,最大利润为第一天买入,第五天卖出。这等效于第一天买入,第二天卖出,第二天再买入。。。 prices[4]…

HCS-华为云Stack-FusionSphere

HCS-华为云Stack-FusionSphere FusionSphere是华为面向多行业客户推出的云操作系统解决方案。 FusionSphere基于开放的OpenStack架构,并针对企业云计算数据中心场景进行设计和优化,提供了强大的虚拟化功能和资源池管理能力、丰富的云基础服务组件和工具…

MYSQL基本查询(CURD:创建、读取、更新、删除)

文章目录 前言一、Create1.全列插入2.指定列插入3.插入否则更新4.替换 二、Retrieve1.SELECT列2.WHERE条件3.结果排序4.筛选分页结果 三、Update四、Delete1.删除数据2.截断表 五、插入查询结果六、聚合函数 前言 操作关系型数据库的编程语言,定义了一套操作关系型…

kali系统入侵电脑windows(win11系统)渗透测试,骇入电脑教学

本次渗透测试将使用kali虚拟机(攻击机)对本机(靶机)进行入侵并监控屏幕 声明:本篇仅仅是将本机作为靶机的一次简易渗透测试,实际情况中基本不可能出现如此简单的木马骇入(往往在上传木马时就被防…

Android App开发-简单控件(4)——按钮触控和图像显示

3.4 按钮触控 本节介绍了按钮控件的常见用法,包括:如何设置大小写属性与点击属性,如何响应按钮的点击事件和长按事件,如何禁用按钮又该如何启用按钮,等等。 3.4.1 按钮控件Button 除了文本视图之外,按钮…

clickhouse 安装与入门(单节点安装)

1、简介 Clickhouse 是一个开源的面向联机分析处理(OLAP, On-Line Analytical Processing)的列式存储数据库管理系统。写入快、查询快,支持sql向量化、并行和分布式查询;但是不支持事务,不支持二级索引等。由俄罗斯的Y…

5_机械臂运动学基础_矩阵

上次说的向量空间是为矩阵服务的。 1、学科回顾 从科技实践中来的数学问题无非分为两类:一类是线性问题,一类是非线性问题。线性问题是研究最久、理论最完善的;而非线性问题则可以在一定基础上转化为线性问题求解。 线性变换: 数域…

【jetson笔记】解决vscode远程调试qt.qpa.xcb: could not connect to display报错

配置x11转发 jetson远程安装x11转发 安装Xming Xming下载 安装完成后打开安装目录C:\Program Files (x86)\Xming 用记事本打开X0.hosts文件,添加jetson IP地址 后续IP改变需要重新修改配置文件 localhost 192.168.107.57打开Xlaunch Win菜单搜索Xlaundch打开 一…

openssl3.2 - 测试程序的学习 - test\acvp_test.c

文章目录 openssl3.2 - 测试程序的学习 - test\acvp_test.c概述笔记要单步学习的测试函数备注END openssl3.2 - 测试程序的学习 - test\acvp_test.c 概述 openssl3.2 - 测试程序的学习 将test*.c 收集起来后, 就不准备看makefile和make test的日志参考了. 按照收集的.c, 按照…

【java面试】常见问题(超详细)

目录 一、java常见问题JDK和JRE的区别是什么?Java中的String类是可变的还是不可变的?Java中的equals方法和hashCode方法有什么关系?Java中什么是重载【Overloading】?什么是覆盖【Overriding】?它们有什么区别&#xf…

【计算机网络】概述|分层体系结构|OSI参考模型|TCP/IP参考模型|网络协议、层次、接口

目录 一、思维导图 二、计算机网络概述 1.计算机网络定义、组成、功能 2.计算机网络分类 3.计算机网络发展历史 (1)计算机网络发展历史1:ARPANET->互联网 (2)计算机网络发展历史2:三级结构因特网 …

【JavaWeb】日程管理系统 添加过滤器登录校验 第三期

文章目录 过滤器控制登录校验创建过滤器类修改login原业务方法 总结 过滤器控制登录校验 未添加过滤器 可以直接访问 showShedule.html 需求说明: 未登录状态下不允许访问showShedule.html和SysScheduleController相关增删改处理,重定向到login.html,登录成功后可以自由访问 创…

RabbitMQ进阶篇【理解➕应用】

🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于RabbitMQ的相关操作吧 目录 🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 一.什么是交换机 1.概念释义 2.例…

web前端-------伪类和伪元素

但是,网页中一些特殊的样式,需要用到特殊的CSS选择器来设置。在CSS中,我们把这类选择器称为伪选择器。 伪选择器,分为伪类选择器和伪元素选择器两个大类。 伪类选择器,简称伪类;…

【贪吃蛇:C语言实现】

文章目录 前言1.了解Win32API相关知识1.1什么是Win32API1.2设置控制台的大小、名称1.3控制台上的光标1.4 GetStdHandle(获得控制台信息)1.5 SetConsoleCursorPosition(设置光标位置)1.6 GetConsoleCursorInfo(获得光标…