Redis 数据库 NoSQL

目录

一、NoSQL

二、为什么会出现NoSQL技术

三、NoSQL的类别

键值(Key-Value)存储数据库

列存储数据库

文档型数据库

图形(Graph)数据库

四、NoSQL适应场景

五、在分布式数据库中CAP原理

1、CAP

2、BASE


一、NoSQL

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

二、为什么会出现NoSQL技术

传统的关系型数据库只能存储结构化数据,对于非结构化的数据支持不够完善。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

  1. High performance - 数据的高并发读写

  2. Huge Storage - 海量数据的高效率存储和访问

  3. High Scalability & High Availability - 数据库的高扩展和高可用

三、NoSQL的类别

键值(Key-Value)存储数据库

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

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

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

        优势:快速查询

        劣势:存储的数据缺少结构化

列存储数据库

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

        应用:分布式文件系统

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

        劣势:功能相对局限

文档型数据库

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

        应用:Web应用

        优势:数据结构要求不严格

        劣势:查询性能不高,且缺乏统一的查询语法

图形(Graph)数据库

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

        应用:社交网络

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

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

四、NoSQL适应场景

  1. 数据模型比较简单

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

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

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

  5. 对于给定key,比较容易映射复杂的环境

  6. 取最新的N个数据(如排行榜)

  7. 数据缓存

五、在分布式数据库中CAP原理

1、CAP

C——consistency                强一致性

A——availability                  可用性

P——partition tolerance      分区容错性

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

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

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

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

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

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

                CA——传统Oracle数据库

                AP——大多数网站架构的选择

                CP——Redis、Mongodb

2、BASE

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

基本可用    (B==basically         A==available)

软状态        (S==soft state)

最终一致    (E==eventually consistent)

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

为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法。

 

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

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

相关文章

[C++ 网络协议编程] 域名及网络地址

1. DNS服务器 DNS(Domain Name System):是对IP地址和域名(如:www.baidu.com等)进行相互转换的系统,其核心是DNS服务器。 我们输入的www.baidu.com是域名,是一种虚拟地址,而非实际地…

Error creating bean with name ‘esUtils‘ defined in file

报错异常: 背景: esUtils在common服务中、启动media服务时候、报这个异常、后排查esUtils在启动时候发生异常引起的、在相关bean中加入try{}catch{}即可解决问题 String[] split url.split(","); HttpHost[] httpHosts new HttpHost[split.…

MySQL的配置文件my.cnf与my.ini

一、my.cnf与my.ini win系统,MySQL配置文件为my.ini 其他系统(Ubuntu、CentOS、macOS)MySQL配置文件为my.cnf 二、my.cnf与my.ini的路径 2.1 默认路径 MySQL 的配置文件 my.cnf 可能位于多个位置,具体取决于安装方式和操作系统。以下是一…

燃尽图、甘特图、鱼骨图

燃尽图、甘特图、鱼骨图 1. 燃尽图 燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。燃尽图有一个Y轴(工作)和X轴(时间)。理想情况下,该图表是一个向下…

2023.8 - java - Number类和Math类

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题&a…

LeetCode[面试题04.12]求和路径

难度:Medium 题目: 给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束&#x…

Java数据库连接池原理及spring boot使用数据库连接池(HikariCP、Druid)

和线程池类似,数据库连接池的作用是建立一些和数据库的连接供需要连接数据库的业务使用,避免了每次和数据库建立、销毁连接的性能消耗,通过设置连接池参数可以防止建立连接过多导致服务宕机等,以下介绍Java中主要使用的几种数据库…

nlp系列(7)三元组识别(Bi-LSTM+CRF)pytorch

模型介绍 在实体识别中:使用了Bert模型,CRF模型 在关系识别中:使用了Bert模型的输出与实体掩码,进行一系列变化,得到关系 Bert模型介绍可以查看这篇文章:nlp系列(2)文本分类&…

神经网络简单理解:机场登机

目录 神经网络简单理解:机场登机 ​编辑 激活函数:转为非线性问题 ​编辑 激活函数ReLU 通过神经元升维(神经元数量):提升线性转化能力 通过增加隐藏层:增加非线性转化能力​编辑 模型越大,…

网络安全---负载均衡案例

一、首先环境配置 1.上传文件并解压 2.进入目录下 为了方便解释,我们只用两个节点,启动之后,大家可以看到有 3 个容器(可想像成有 3 台服务器就成)。 二、使用蚁剑去连接 因为两台节点都在相同的位置存在 ant.jsp&…

leetcode349. 两个数组的交集

简单题,竟然想了20分钟 题目 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出&#xff…

2023中国算力大会,和鲸科技携手生态伙伴,推动算力创新发展与应用

8月18日至8月19日,由工业和信息化部、宁夏回族自治区人民政府共同主办的 2023 中国算力大会在宁夏银川举行。本届大会以“算领新产业潮流 力赋高质量发展”为主题,聚焦算力前沿技术领域,展示算力融合应用成果,推动算力产业加速发展…

基于jeecg-boot的flowable流程收回功能实现(全网首创功能)

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 …

SpringBoot 的 RedisTemplate、Redisson

一、Jedis、Lettuce、Redisson的简介 优先使用Lettuce, 需要分布式锁,分布式集合等分布式的高级特性,添加Redisson结合使用。 对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。 1.1、…

利用屏幕水印学习英语单词,无打扰英语单词学习

1、利用屏幕水印学习英语单词,不影响任何鼠标键盘操作,不影响工作 2、利用系统热键快速隐藏(ALT1键 隐藏与显示) 3、日积月累单词会有进步 4、软件下载地址: 免安装,代码未加密,安全的屏幕水印学习英语…

【云原生】3分钟快速在Kubernetes1.25部署Prometheus2.42+Grafana9.5.1+Alertmanager0.25

文章目录 1、简介2、GitHub地址3、环境信息4、安装5、访问Grafana1、简介 Prometheus-operator帮助我们快速创建Prometheus+Grafana+Alertmanager等服务,而kube-prometheus更加完整的帮助我们搭建全套监控体系,这包括部署多个 Prometheus 和 Alertmanager 实例, 指标导出器…

番茄(西红柿)叶病害识别(Python代码,pyTorch框架,深度卷积网络模型,很容易替换为其它模型,带有GUI识别界面)

代码运行要求:Torch>1.13.1即可 1.数据集介绍: 每一个文件夹里装有一类病害叶子的照片,一共10种类别,每种类别下有1100张照片 从第一类到第十类分别如下图所示 2.整体文件夹 data文件夹存放的是未被划分训练集和测试集的原…

解决Pycharm的Settings中Project不见了也无法选择Python Interpreter的方法

目录 一、问题如下二、解决方法 一、问题如下 突然打开项目没有python解释器,也无法重新配置python Interpreter,而且整个文件夹是黄色高亮的形式,如下显示,而且重新安装了pycharm也没用甚至说打开File–>Setting–>Projec…

PSP - 基于开源框架 OpenFold Multimer 蛋白质复合物的结构预测与BugFix

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132410296 AlphaFold2-Multimer 是一个基于 AlphaFold2 的神经网络模型,可以预测多链蛋白复合物的结构。该模型在训练和推理时都可以处…

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料 效果一览 基本…