Redis 数据库 NoSQL

news2024/12/28 19:14:02

目录

一、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.coloradmin.cn/o/893483.html

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

相关文章

Cat(5):API介绍—Event

Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小。 Cat.logEvent 记录一个事件。 Cat.logEvent("URL.Server", "serverIp", Event.SUCCESS, "ip${…

萤石网络2023上半年报:利润同比增长70%,技术、市场多核驱动

近年来,随着人工智能技术快速发展,智能家居热度在持续升温,市场规模在不断扩大。Omida最新报告显示,到2026年,全球智能家居设备市场规模将超2790亿美元,逾3亿家庭将共同创造智能家居服务收入。中国作为全球…

APP外包开发原生和H5的区别

原生开发和H5开发是两种不同的方法,用于创建移动应用程序。它们具有各自的特点、优势和劣势,适用于不同的应用场景。以下是原生开发和H5开发之间的一些主要区别,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发…

如何在微信内置浏览器中开启开发者模式(f12)

本文转载于:https://blog.csdn.net/qq_45863248/article/details/127688137 重要的事情放开头:此方法适用于3.2.1版本微信,如不想回退版本,就不用往下看了 相信大家都使用过浏览器的f12,可以看到浏览器所有的通讯数据…

3.若依前后端分离版开发用户自定义配置表格功能

一、背景 在项目上线测试的时候,关于同一个界面的表格,不同的用户会出现不同的字段排列需求,有些用户希望把A字段排在最前面,有些用户则希望A字段不显示。针对这种情况,开发一个表格自定义配置的功能,每个用户根据自己的需求自己去设定表单字段的显示、隐藏、字段的宽度…

水浒传思维导图怎么绘制?试试这样绘制

水浒传思维导图怎么绘制?绘制水浒传思维导图可以帮助我们更好地理解和记忆水浒传的故事情节和人物关系。通过将大量信息组织成一个视觉图,我们可以更清晰地看到每个人物的特点和角色关系,更好地理解整个故事的发展和结构。此外,绘…

优思学院|六西格玛黑带的9大任务和7大技能

六西格玛黑带是六西格玛管理中最为重要的一个角色,他们专职(也可以是兼职)从事六西格玛改进项目,是成功完成六西格玛项目的技术骨干成员,是六西格玛组织的核心力量。他们的努力程度决定着六西格玛管理的成败。 六西格玛…

变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践

目录导读 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践1. 什么是变更通知2. 变更通知的场景分析3. 变更通知的技术方案3.1 变更通知的技术实现方案 4. 变更通知的最佳实践总结5. 参考资料 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践 1. 什么是变更通…

IDEA 设置为护眼的豆沙绿

代码区域设置成护眼色 先打开 IDEA 的设置界面,然后按照下图按顺序店了设置就可以了 这个时候,可以看到,只有代码区域别成了护眼色,其他地方还是白的刺眼,我们来一个一个的解决掉 左侧的文件页修改为护眼色 还是先…

CNN(五):DenseNet+SE-Net实战

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊|接辅导、项目定制 SE-Net(Squeeze-and-Excitation Networks)是ImageNet2017(ImageNet收官赛)的冠军模型,是由WMW团队发布。具有复杂度低&#xff0c…

ardupilot开发 --- log篇

懂的都懂,你也要懂 log作用记录您的飞行数据; 两种方式或类型: Data flash log ,通常记录在SD卡上,可通过地面站下载; Telemetry logs(Tlogs),地面站通过无线设备进行实…

软件测试(黑皮书)学习一

第一部分 软件测试综述 第一章 软件测试背景 1.1软件缺陷(software bug) 软件失败的术语 故障(fault)失败(failure) 缺点(defect) ------严重、危险异常(anomaly&…

STEP/STP模型文件在线查看【3D CAD】

STEP 文件(正式称为 ISO 10303)是 3D 模型的流行文件格式。 该格式名称中的字母代表“产品数据交换标准”。 这种文件格式是由 ISO 自动化系统和集成技术委员会(称为 TC 184)于 20 世纪 80 年代中期开发的。STEP 格式的创建是为了…

java.lang.Long cannot be cast to java.lang.Integer解决

出错代码:接收泛型指定是Integer 但是在接测试中 频频抛出java.lang.Long cannot be cast to java.lang.Integer异常,debug 发现Map中的参数确实是Long类型的。 解决办法: 使用父类的Number接收,在使用intValue()方法转成int 原因分析&#…

恒运资本:机构持仓比例多少是重仓?

组织投资者关于股票商场的影响越来越大,其持股份额已成为点评一只股票好坏的重要目标之一。但组织持仓份额究竟多少才算是重仓呢?这涉及到许多要素,让我们从多个视点进行剖析。 1.不同组织的界说不同 首要需求注意的是,不同的组织…

OpenCV-Python中的图像处理-图像特征

OpenCV-Python中的图像处理-图像特征 图像特征Harris角点检测亚像素级精度的角点检测Shi-Tomasi角点检测SIFT(Scale-Invariant Feature Transfrom)SURF(Speeded-Up Robust Features)FAST算法BRIEF(Binary Robust Independent Elementary Features)算法ORB (Oriented FAST and R…

网络综合布线实训室建设方案

一、网络综合布线系统概述 网络综合布线系统是为了满足数据通信需求而设计和建立的一套基础设施。它提供了数据传输、信号传输和电力供应的基础结构,支持各种网络设备和终端设备之间的连接。 网络综合布线系统通常包括以下组成部分: 1) 数据…

Element:input输入框远程搜索返回输入建议的代码详解

文章目录 1 原始代码2 代码详解3 添加注释后的代码&#xff1a;4 createStateFilter方法中0代表什么&#xff1f;5 包含即返回建议值 1 原始代码 官网链接&#xff1a;https://element.eleme.cn/#/zh-CN/component/input 官网代码&#xff1a; <template><el-autoc…

Betty核心源码解析(二)--ServerBootstrap启动过程

serverbootstrap用于建立netty服务端&#xff0c;核心逻辑-- 设置线程池-- bossGroup和workGroup设置accept连接handler定义服务器的色弱v儿serversocketchannel实现设置IO读写的业务逻辑相关childHanlder绑定监听端口-- 创建serversocketchannel对象初始化serversocketchanne…

​ Spring Clould 配置中心 - Nacos

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Nacos配置管理-Nacos实现配置管理&#xff08;P24、P25&#xff09; Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 当微服务部署的实例越来越多&#xff0c…