一、Redis之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 是为了解决关系型数据库强一致性引起的问题而导致可用性降低而提出的解决方案.

基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)

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

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

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

相关文章

【Git】03 图形化工具

文章目录 一、右击菜单二、打开仓库三、可视化所有分支历史四、总结 一、右击菜单 二、打开仓库 三、可视化所有分支历史 四、总结 图形化工具了解一下,要懂得在哪里能找到。

Vue工程引入Element-ui

npm 安装ELement-ui npm i element-ui -S 于package.json中发现有“element-ui”版本号即可 引入 Element 在 main.js 中写入以下内容: import element-ui/lib/theme-chalk/index.css; import ElementUI from element-ui;Vue.use(ElementUI);之后根据自己的需求设计…

位运算之妙用:识别独特数字(寻找单身狗)

目录 找单身狗1 图解: 代码如下: 找单身狗2 图解: 代码如下: 寻找单身狗1 从数组中 的1 2 3 4 5 1 2 3 4 中找出没有另一个相同的数与其匹配的数 这个问题的原理是利用异或运算的性质。异或运算(XOR&#xff09…

(c语言版)开源项目热榜,某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目

某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。 数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量&…

Python 数据分析(PYDA)第三版(四)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 八、数据整理:连接、合并和重塑 原文:wesmckinney.com/book/data-wrangling 译者:飞龙 协议:CC BY-NC-SA 4.0 此开放访问网络版本的…

linux -- 并发 -- 并发来源与简单的解决并发的手段

互斥与同步 当多个执行路径并发执行时,确保对共享资源的访问安全是驱动程序员不得不面对的问题 互斥:对资源的排他性访问 同步:对进程执行的先后顺序做出妥善的安排 一些概念: 临界区:对共享的资源进行访问的代码片段…

金和OA jc6 UploadFileBlock 任意文件上传漏洞复现

0x01 产品简介 金和OA协同办公管理系统软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效率的核心思想,为用户提供一整套标准的办公自动化解决方案,以帮助…

JavaWeb01-JDBC、Druid连接池

目录 一、JDBC 1.概述 2.本质 3.好处 4.使用步骤 5.JDBC_API (1)DriverManager(驱动管理类) (2)Connection(数据库连接对象) (3)Statement &#xf…

基于Java SSM框架实现汉服文化平台系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现汉服文化平台系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个汉服文化平台网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论…

Linux中make和makefile

make与makefile 简单介绍常见用法符号替代自动寻找设置变量取消打印提示 简单介绍 make是Linux中一个命令,与之匹配的是makefile,makefile是一个文件。make会根据makefile中的内容完成对应的工作 创建一个名为makefile的文件 vim打开makefile 第一行是依…

调试以及发布npm组件

开发原因: 由于公司自己的封装到npm的组件有点问题,负责人由在忙其他,就由我去负责改改,中途出了不少问题,记录一下。 一、下载源码 第一步肯定是去git上把组件的源码下载下来,这一步没什么好说&#xf…

好的问卷设计标准:确保数据质量与准确性的关键要素

问卷的主要由三个部分组成:问卷说明、问卷主题、问卷结束。而这三个部分又包含了很多因素,比如问卷主题、问卷标题、问卷题目、问卷调查对象等。制作问卷不仅仅是简单的问题罗列,然后进行发放。不同质量的调查问卷会反馈出不一样的效果&#…

Vue.js设计与实现(霍春阳)

Vue.js设计与实现 (霍春阳) 电子版获取链接:Vue.js设计与实现(霍春阳) 编辑推荐 适读人群 :1.对Vue.js 2/3具有上手经验,且希望进一步理解Vue.js框架设计原理的开发人员; 2.没有使用过Vue.js,但对Vue.js框架设计感兴趣…

2024年美赛E题:财产保险的可持续性 Sustainability of Property Insurance 思路模型代码解析

2024年美赛E题:财产保险的可持续性 Sustainability of Property Insurance 思路模型代码解析 【点击最下方群名片,加入群聊,获取更多思路与代码哦~】 问题翻译 极端天气事件对房产所有者和保险公司已经成为一场危机。近年来,世界…

Blender教程(基础)-面的切割-10

快捷键K切割,菜单选项切割. 一、随意切割 物体在编辑模式下,按键盘K建切割物体。 二、中点切割 先按K键,再按shift键,会自动吸附到每条边的中点进行切割。 三、取消吸附 切割时会自动吸附到顶点或边 关闭快速吸附 按K键再按…

26条prompt规则应用于大模型

1、引入动机 llm大模型在回答一些问题上表现出了惊人的能力,例如数学逻辑推理,代码生成,问题答复等。提词工程是和大预言模型交流的一门艺术。 大模型的返回结合和用户的指令和输入直接相关prompts是用户和大模型沟通的一种编码方式 一般地…

在低代码平台上实现精益软件开发:提高效率与灵活性的关键实践

什么是精益软件开发? 精益软件开发是一种敏捷的软件开发框架。它基于最小化浪费和最大化价值的原则。该框架基于最小可行产品策略运行,该策略强调交付具有基本基本功能的产品,然后根据收到的反馈进行迭代以即兴发挥并提供卓越。 精益软件开发…

2阶段提交_3阶段提交(phase-commit)

1. 2PC(两阶段提交) 如上所示是2阶段提交的一个过程,可为什么要进行两阶段提交呢?这里主要来说是将操作事务能力和提交、回滚事务能力分开来做成2阶段,如果不分开会造成什么后果呢: 如果单纯 A 向 B 发送一个请求就以…

由于找不到d3dcompiler43.dll无法继续执行程序的解决方法

在日常使用电脑的过程中,我们常常会遭遇一些突发的技术问题,其中之一便是可能会遇到系统提示找不到d3dcompiler43.dll文件的情况。这一特定的动态链接库文件(dll)对于许多应用程序的正常运行至关重要,尤其是在涉及到图…

PPT母版页码设置

PPT母版页码设置 一、需求介绍二、达到效果三、具体操作1. 插入页码2. 设置起始页码为03. 进入母版编辑页面4. 内容格式调整5. 删去最后一个板式的三个模块信息6. 尾页处理7. 最终效果 一、需求介绍 PPT的母版可以设定PPT的基调,且在非母版页面不会误改PPT中的固定…