软考高级架构师-6.5-NoSQL数据库-超详细讲解+精简总结

6.5-  NoSQL数据库 - 特点、分类、体系框架

总结:

1、概念: NoSQL泛指非关系型的数据库,主要为了满足大数据、分布式系统和动态数据模型等现代应用场景的需求。
2、特点:易扩展性、高性能、灵活的数据模型、高可用性
3、分类:列式存储数据库、键值对存储数据库(Redis)、文档型数据库(MongoDB)、图数据库
4、体系框架:数据持久层(内存、硬盘)、数据分布层(动态部署)、数据逻辑层、接口层。

一、特点

1. 易扩展性(Scalability)

        NoSQL支持 水平扩展,通过添加服务器提升容量和性能,而非依赖单一服务器。其 分布式架构 能在多个节点间分散存储和计算,适合大规模数据处理。

示例:Cassandra (一个分布式列式数据库)在社交平台上存储用户帖子,随着用户增长,自动将数据分布到多个服务器,确保快速访问。

2. 高性能(High Performance)

        NoSQL数据库通过简化模型和去除复杂的关系操作,通常在大数据场景下提供更高的读写性能。例如,Redis基于内存工作,读写速度极快,适合缓存和实时处理任务。

举例:Redis 是一个基于内存的键值对存储数据库,在线游戏中,Redis可以用来存储玩家的排行榜数据,由于其高性能,排行榜的更新和查询可以在毫秒级完成,确保玩家实时看到排名变化。

3. 灵活的数据模型

        无固定表结构:数据结构不固定,可以灵活变化,且可以随意添加修改字段,适合处理快速变化的业务需求。

4. 高可用性和容错性

        NoSQL通过 自动分片和数据复制 实现高可用性,即使某个节点故障,数据可从其他节点恢复,确保系统持续运行。其 分布式架构 提供了强大的容灾恢复能力,特别是跨数据中心的多副本策略。

示例:Couchbase支持数据复制和自动故障恢复。当节点故障时,它会自动切换到其他节点,确保广告系统等应用不中断。

二、分类

     根据数据存储结构的不同,NoSQL数据库大致可以分为以下四类

NoSQL类型数据结构特点示例产品
列式存储数据库列(列族)存储数据按列存储,适合海量分布式数据,支持快速查询和大规模数据分析Cassandra, HBase, Scylla
键值存储数据库键-值对使用哈希表存储,读写速度快,适合简单数据存储;不擅长复杂查询Redis, DynamoDB, Riak, Voldemort
文档型数据库JSON/BSON等文档格式存储半结构化数据,支持嵌套结构,适合处理复杂的数据,如网页和内容管理系统MongoDB, CouchDB, SequoiaDB
图数据库节点-边模型通过图结构存储和管理数据,擅长处理数据关系,适合社交网络、推荐系统等场景Neo4j, ArangoDB, JanusGraph

1、列式存储数据库

  • 特点:数据按列存储,而不是按行存储。适合处理海量分布式数据。键指向多个列,列由列家族组织。
  • 应用场景:高效处理大规模数据的查询,特别是在分布式环境下。
  • 代表产品:Cassandra、HBase、Riak。
用户ID  列:        1, 2, 3, 4
姓名  列:          Alice, Bob, Charlie, Diana
年龄  列:          25, 30, 22, 28

2、键值对存储数据库

  • 特点:通过哈希表存储键值对,键指向一个特定数据。结构简单,易于部署,但在只对部分值查询时效率较低。
  • 应用场景:缓存、会话管理、用户偏好存储等场景。
  • 代表产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB。
"session1": {"user": "Alice", "cart": ["book", "pen"], "total": 35.0}
"session2": {"user": "Bob", "cart": ["laptop", "mouse"], "total": 950.0}

3、文档型数据库

  • 特点基于键值存储,但允许存储更复杂的嵌套数据,如JSON。适合处理半结构化数据。
  • 应用场景:复杂数据查询与管理,如网页内容存储、内容管理系统等。
  • 代表产品:CouchDB、MongoDB、SequoiaDB。
{"user_id": "1","name": "Alice",
},
{"user_id": "2","address": {"city": "San Francisco"}
}

4、图数据库

  • 特点:采用图结构存储数据,能够有效处理节点及其之间的复杂关系。通常用于建模社交网络、生物信息网络等需要复杂关系表示的数据。
  • 应用场景:社交网络、推荐系统、路径优化等。
  • 代表产品:Neo4J、InfoGrid、Infinite Graph。

三、体系框架

         NoSQL数据库的整体框架分为4层: 数据持久层 数据分布层 数据逻辑模型层 接口层 ,它们共同协作,提供灵活的存储和访问方式。各层次功能如下:
  1. 数据持久层:定义数据的存储方式,有基于内存、硬盘、内存+硬盘结合、可插拔存储形式。

    • 基于内存:速度最快,但易丢失数据。
    • 基于硬盘:保存久但速度较慢。
    • 内存+硬盘结合:兼具速度和数据安全。
    • 可插拔:提供灵活的存取机制。
  2. 数据分布层:定义数据的分布方式,主要支持:

    • CAP模型:实现水平扩展。
    • 多数据中心:支持跨数据中心的平稳运行。
    • 动态部署:可在运行时动态添加或删除节点。
  3. 数据逻辑层:描述数据的逻辑表现形式,抽象数据模型。

  4. 接口层:为应用提供多种接口,支持Rest、Thrift、Map/Reduce、Get/Put、特定语言API等,使数据调用更加灵活方便。

这种分层架构提供了极大的灵活性,不同NoSQL数据库可以在各层面支持多种特性。

四、适用场景

NoSQL 数据库在以下这几种情况比较适用:
● 数据模型比较简单;
● 需要灵活性更强的 IT 系统;
● 对数据库性能要求较高;
● 不需要高度的数据一致性;
对于给定 key, 比较容易映射复杂值的环境

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

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

相关文章

求助帖:ubuntu22.10 auto install user-data配置了为何还需要选择语言键盘(如何全自动)

0-现象:配置好autoinstll的PXE与user-data文件安装过程仍然要人工选语言、键盘等,非全自动;—— 1.硬件环境:x86_64机器 U盘(/dev/sda); 2.软件环境:DHCPPXE启动做好grub与pxe的aut…

【AI绘画】Midjourney进阶:留白构图详解

博客主页: [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯什么是构图为什么Midjourney要使用构图 💯留白构图特点使用场景提示词书写技巧测试 💯小结 💯前言 【AI绘画】Midjourney进阶&…

Springboot 的手动配置操作讲解

1.创建新项目: 手动创建使用maven 项目 并选择骨架: quickstart 骨架用来搭建spingboot 2.手动输入pom.xml依赖: 要想创建springboot 首先继承springboot 的父类 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo…

算法的学习笔记—两个链表的第一个公共结点(牛客JZ52)

&#x1f600;前言 在链表问题中&#xff0c;寻找两个链表的第一个公共结点是一个经典问题。这个问题的本质是在两个单链表中找到它们的相交点&#xff0c;或者说它们开始共享相同节点的地方。本文将详细讲解这个问题的解题思路&#xff0c;并提供一种高效的解决方法。 &#x…

python 爬虫抓取百度热搜

实现思路&#xff1a; 第1步、在百度热搜页获取热搜元素 元素类名为category-wrap_iQLoo 即我们只需要获取类名category-wrap_为前缀的元素 第2步、编写python脚本实现爬虫 import requests from bs4 import BeautifulSoupurl https://top.baidu.com/board?tabrealtime he…

[手机Linux PostmarketOS]七, Linux使用selenium爬虫

一&#xff0c;selenium安装 # 用pip 安装 selenium pip3 install selenium --break-system-packages 二&#xff0c;安装浏览器Chrome Alpine Linux 环境中没有google Chrome&#xff0c; 使用 Chromium 浏览器作为 Chrome 的替代品&#xff0c;Chromium 是 Chrome 的开源版本…

定时任务使用kafka

定时任务使用kafka 在上述业务场景中使用 Kafka 而不是直接定时执行任务有以下几个重要原因&#xff1a; 一、解耦 任务触发与执行分离&#xff1a; 使用 XXL-JOB 定时触发任务并将任务消息发送到 Kafka&#xff0c;实现了任务触发端&#xff08;通常是调度系统&#xff09;和…

数字后端零基础入门系列 | Innovus零基础LAB学习Day5

###Module 12 RC参数提取和时序分析 数字后端零基础入门系列 | Innovus零基础LAB学习Day4 数字后端零基础入门系列 | Innovus零基础LAB学习Day3 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字后端零基础入门系列 | Innovus零基础LAB学习Day1 ###LAB12-1 这个章节…

机器学习与神经网络:科技的星辰大海

前提 近日&#xff0c;2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者&#xff0c;这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家&#xff0c;如今却将全球范围内对机器学习和神经网络的研究和开发作为了一…

kotlin 入门总结

目录 1、构造函数 2、数据类 data class&#xff0c; 3、object 单例类&#xff0c;相当于java线程安全的懒加载 4、companion object 伴生对象&#xff0c;类似于包装静态值的一个区域块 5、解构 6、空安全 7、条件语句 8、集合 9 属性和支持属性 属性 支持属性 10 …

kali的下载与配置

kali.org官网下载 选择VMware的版本下载&#xff0c;并解压&#xff0c;复制解压后的路径 在虚拟机中&#xff0c;点击文件&#xff0c;打开 默认的账户密码均为kali 修改密码 sudo passwd root 切换root用户 su root 查看IP ip addr IP:192.168.184.131 粘贴复制shiftinsert…

从图像识别到聊天机器人:Facebook AI的多领域应用

随着人工智能技术的快速发展&#xff0c;Facebook已在多个领域内广泛应用AI技术&#xff0c;以提升用户体验、提高效率并推动创新。从图像识别到聊天机器人&#xff0c;Facebook的AI应用涵盖了社交媒体的方方面面&#xff0c;下面我们将深入探讨这些应用的具体实现及其对用户生…

ecmp观察

文章目录 简述选路策略实验说明开始验证 简述 ECMP&#xff08;Equal Cost Multi Path&#xff09;等价多路径&#xff0c;又称等价路由。指到达同一个目的IP或者目的网段存在多条COST值相等的不同路由路径。在具有多条到达同一目的地的网络链路的环境中&#xff0c;传统路由技…

2.1 > Shell 是什么、如何更熟练的使用 Bash Shell

Shell 基础知识 Shell是计算机操作系统中的一个命令行解释器&#xff0c;由C语言编写&#xff0c;用于用户与操作系统之间进行交互。用户可以通过Shell输入命令&#xff0c;操作系统接收到这些命令后执行相应的操作。Shell一般还提供了编程语言的基本功能&#xff0c;允许用户…

在 VS Code 中轻松绘图:Draw.io Integration 插件详解

文章目录 在 VS Code 中轻松绘图&#xff1a;Draw.io Integration 插件详解一、什么是 Draw.io Integration 插件&#xff1f;二、插件安装指南1. 安装步骤2. 配置插件 三、如何使用 Draw.io Integration 插件&#xff1f;1. 创建新绘图文件2. 编辑现有图表3. 常用功能与技巧 四…

网安加·百家讲坛 | 徐一丁:金融机构网络安全合规浅析

作者简介&#xff1a;徐一丁&#xff0c;北京小西牛等保软件有限公司解决方案部总监&#xff0c;网络安全高级顾问。2000年开始从事网络安全工作&#xff0c;主要领域为网络安全法规标准研究、金融行业安全咨询与解决方案设计、信息科技风险管理评估等。对国家网络安全法规标准…

【数据结构与算法】《布隆过滤器:高效数据筛选的魔法工具》

标题&#xff1a;《布隆过滤器&#xff1a;高效数据筛选的魔法工具》 摘要&#xff1a;本文将带你深入了解布隆过滤器这一神奇的数据结构。从研究推荐系统中的已读内容排除和重复内容去重问题引入&#xff0c;详细介绍布隆过滤器的产生契机、设计思想、优缺点及用途。通过阅读…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成&#xff0c;每个支链包含一个转动关节和一个移动关节&#xff0c;具有结构紧凑、占地面积小、高速高灵活性等特点&#xff0c;可在有限的空间内进行高效的作业&#xff0c;广泛应用于柔性上下料、包装、分拣、装配等需要…

MyBatis 基础知识:配置文件、映射器与 SQL 示例详解

本篇博客将深入探讨 MyBatis 的基础知识&#xff0c;包括配置文件的设置、映射器的使用以及实际的 SQL 示例。 文章目录 前言 准备工作 根据主键删除 日志输出 ​编辑 预编译SQL SQL注入 ​编辑 参数占位符 新增员工 主键返回 更新 查询&#xff08;根据ID查询&#x…

世界前沿思想升命学说:鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪

在当今哲学的前沿探索中&#xff0c;山东济南的名人颜廷利教授的《升命学说》一书以其独到的见解和深刻的洞察力&#xff0c;为我们揭示了十二生肖背后的象征意义。这些生肖包括鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗以及猪&#xff0c;每一种动物都承载着独特的文化寓意…