NoSql数据库:Cassandra,Mongo,Redis数据库比较

1.什么是NoSql数据库?

NoSql(不仅是Sql)数据库是可水平扩展,持久存储半结构或非结构化数据并具有灵活模式的非关系数据库。 这些数据库支持多种数据模型,例如键值,文档,列族,基于图形的,内存中的等等,用于管理和访问数据。 NoSql数据库最适合用于构建现代应用程序,这些应用程序需要大数据和大量请求,高度可扩展,低延迟,高性能和灵活的数据模型,以提供出色的客户体验。

在本文中,我们将讨论NoSql数据库,Cassandra,Mongo和Redis数据库的介绍,以及何时使用这些NoSql数据库以获得更好的性能。

2. NoSql数据库的功能

2.1多种型号支持

NoSql数据库非常适合持久,管理和访问半结构化和非结构化数据。

2.2开源

大多数NoSql数据库都是开源的。 大多数云提供商通过在后台管理自动扩展,补丁更新等将这些数据库作为托管服务提供。

2.3可扩展性

通过向群集添加更多服务器,NoSql数据库可进行水平扩展,并且与可垂直扩展的关系数据库不同,该群集可分布在多个地理位置(区域)中。

2.4低延迟

由于数据复制到数据库群集上的多个节点,因此延迟很短。 延迟和一致性之间的权衡对于Web和移动软件应用程序很重要。 无论采用哪种复制方法,都将在一致性和延迟之间进行权衡。

2.5灵活架构

NoSql数据库支持具有最终一致性的灵活数据模型,并且固有地无架构。 这使NoSql数据库适合于有效存储半结构化和非结构化数据。

2.6高性能,可用和容错

在NoSql数据库中,数据被复制到群集中的多个节点以及其他区域中的群集中的节点。 此特性使NoSql数据库具有高可用性和容错能力。 没有Sql数据库针对文档,键值,列族,图等数据模型及其访问模式进行了高度优化,这些模型可提供更高的性能。

3.卡桑德拉

Apache Cassandra是一个开源,分布式,水平可伸缩,高度可用,容错和宽列NoSql数据库。 它用Java编写,是一个列族存储数据库。 Cassandra群集中的所有节点都是对等节点,并且在Cassandra中没有主从范式。 这使得cassandra高度可用,具有容错能力并且没有单点故障。 Cassandra集群可以水平扩展,并且可以分布到多个数据中心。

在cassandra中写入速度非常快,因为它不会先搜索然后再写入。 首先将数据写入提交日志 ,然后使用cassandra算法小心将数据反映到表中。 在cassandra中,围绕查询对数据模型进行建模,即首先确定应用程序查询,然后对其进行数据建模。

4. MongoDB

MongoDB是一个用C ++编写的开源,跨平台,面向文档,高度可用,可扩展且灵活的NoSql数据库。 它适用于集合和文档,并通过副本集提供高可用性。

MongoDB使用类似于JSON的文档,这些文档可以具有多种结构。 由于架构较少,因此在创建文档之前无需创建文档结构。 MongoDB使用MongoDB QL(查询语言)来访问存储在MongoDB中的数据。 MongoDB具有非常强大的聚合功能和表达性聚合框架。

5. Redis(远程字典服务器)

Redis是一个开源且可扩展的数据存储,可以用作数据库,缓存以及消息代理。 它是用ANSI C编写的。Redis是一种内存中数据存储,可以将其状态持久保存到磁盘,即使重新启动Redis节点也可以恢复其状态。 它的内存存储使其超快。

6. Cassandra vs MongoDB vs Redis

  • Cassandra以Column-Family结构存储数据,而MongoDB以JSON文档格式存储数据。
  • 在Cassandra中,不建议使用二级索引,因为它们会降低性能。 在MongoDB中,最好使用索引,以避免搜索所有文档以找到所需的文档并获得更好的性能。
  • Cassandra是实现高写入吞吐量的理想选择,但是如果您的应用程序需要很高的读取并发性,请使用MongoDB。
  • Cassandra没有主节点,所有节点都是对等节点,而在MongoDB中,只有一个主节点。
  • Cassandra最终将写入的数据复制到集群中复制因子中指定的节点数,以及不同区域中集群中的节点数。 MongoDB需要进行一些设置才能进行复制。 您可以设置辅助数据库,如果主数据库出现故障,则可以自动选择该数据库。 在MongoDB中,读取首先首先提交给主副本,然后再复制到辅助副本。
  • 在这些数据库中,您可以在每条记录上设置TTL(生存时间),因此可以在TTL到期后自动将记录逐出。
  • Redis是键值数据存储,非常有效地用作缓存来提高应用程序性能。
  • 扩展Cassandra和Mongo比Redis简单得多。
  • 在Redis中,数据存储的大小不能超过系统上的总内存空间,即RAM加交换空间。 Mongo数据库的大小没有内在限制。
  • 可以对Cassandra,MongoDB和Redis数据库进行集群,以实现高可用性,备份并增加数据存储的整体大小。
  • 如果您的应用程序需要聚合,请使用MongoDB。 如果您的应用程序需要键值临时存储,请使用Redis。 如果您的应用程序需要轻松扩展的高写入吞吐量的宽列存储,请使用Cassandra。

7.什么时候使用哪个NoSql数据库?

以下是一些使用案例,其中不同的NoSql数据库最适合并提供更好的性能。

选择以下用例的Cassandra:

  • 线性可扩展,高可用性,容错
  • 多数据中心部署
  • 很高的写入吞吐量,但读取次数较少。
  • 您想在存储的数据之上建立一个响应Swift的报告系统
  • 实时数据分析
  • 您的应用程序不需要数据库中的ACID属性
  • 您的应用程序需要与Hadoop,HBase,Spark集成

选择MongoDB用于以下用例:

  • 即时扩展
  • 基于文档的存储
  • 很高的读取并发
  • 缓存实时分析
  • 内容管理
  • 写入有效负载很高,即文档大小很大(最大16MB)
  • 在快速原型制作中非常有用
  • 适合存储大文本,视频,图像,媒体文件等。

选择以下情况的Redis DB:

  • 缓存更大的有效负载以提高应用程序的性能
  • 永久缓存到磁盘,需要在重启后恢复
  • 键值对存储
  • 需要非常高的性能
  • 临时数据存储,例如用户会话
  • 可以使用其发布/订阅模型用作消息传递队列

8. Cassandra vs Mongo vs Redis DB –摘要

了解不同的NoSql数据库对于选择适合您的应用程序需求的数据库至关重要。 根据您的应用程序使用案例选择正确的NoSql数据库。 如果您的数据关系太多并且需要ACID属性,则NoSql数据库不是一个不错的选择。 为了提高应用程序性能,请使用Redis作为缓存,因为它具有内存存储。 使用MongoDB满足内容管理和文档类型的存储需求。 将Cassandra用于高度可用的宽列存储箱。 选择正确的数据库直接影响应用程序的性能。

翻译自: https://www.javacodegeeks.com/2019/02/nosql-databases-cassandra-vs-mongo-vs-redis-db-comparison.html

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

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

相关文章

E70系列模块高效型、超低功耗无线cc1310芯片优势典型应用

E70系列是成都亿佰特电子科技有限公司基于TI公司CC1310射频芯片研发的无线串口模块(UART),可工作在431~446.5MHz频段(默认433MHz)、861~876.5MHz频段(默认868MHz)、907~922.5MHz频段&#xff08…

[渝粤教育] 南京邮电大学 市场调查与研究 参考 资料

教育 -市场调查与研究-章节资料考试资料-南京邮电大学【】 第一周测验 1、【单选题】市场调研帮助企业获取决策 A、背景 B、结果 C、信息 D、路径 参考资料【 】 2、【单选题】卡夫公司向市场推出了一款新的产品,可是产品的市场表现远低于预期。卡夫公司通过市场调查…

飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南

交换机是监控网络传输的核心设备。交换机的选型,有很多的重要技术参数需要考虑,硬件上包括百兆/千兆/万兆速率的端口、电口/光口/PoE口、端口数量、MAC地址表深度、转发延迟、缓存大小、VLAN、隔离等等。很多项目就是因为交换机选择当,出现各…

LoRa技术实现社区天然气抄表的应用

一、概述 以上图来自成都亿佰特科技有限公司自主研发的LoRa产品,分别是基于SX1278的433MHz频段的串口模块,基于SX1276的868MHz频段和915MHz频段的串口模块。该系列产品为小型贴片式,适用于可穿戴式,仪器仪表,手持式仪表…

构建企业级大语言模型应用的秘诀:GitHub Copilot 的实践之路

GitHub Copilot 是目前最成功的大语言模型应用之一,可以帮程序员自动生成可用的代码,已经有超过一百万付费用户。 GitHub Copilot 开发团队分享了构建这个产品时的经验教训。整个产品的开发历时三年,尽力了三个阶段:发现、实现和…

LoRa技术在地质灾害预警上的应用

LoRa扩频技术具有超远距离通信,功率密度集中,抗干扰能力强的优势。成都亿佰特电子科技有限公司推出了几款适用于监测应用的DTU如 E90-DTU系列,E800-DTU系列,E32-DTU系列等。该系列相比同类进口的数传电台,具有功能先进…

[渝粤教育] 哈尔滨工业大学 大学计算机—计算思维导论 参考 资料

教育 -大学计算机—计算思维导论-章节资料考试资料-哈尔滨工业大学【】 第1讲之模拟练习题 1、【单选题】计算之树中,通用计算环境的演化思维是怎样概括的?。 A、程序执行环境—由CPU-内存环境,到CPU-存储体系环境,到多CPU-多存储…

飞畅科技教你如何快速选择工业网管poe交换机?

不管你是工程商还是渠道商,面对市面上品牌繁多,类型复杂,质量和价格也参差不齐的工业级网管交换机您是如何选择的?是否需要电源冗余、网络冗余,以及多样化的网管功能、平台化集中管理、防护、防雷等级又是多少、故障了…

亿佰特串口服务器接入阿里云物模型使用教程

在之前的文章中我们了解到虚拟串口软件作为TCP客户端来结合串口服务器使用,这一期我们来看一下串口服务器怎样接入阿里云物模型。 步骤详尽,一文读懂。 硬件准备 ME31-AXAX4040网络IO联网模块一台; MCGS的TPC7062组态屏一台; …

spring 异常捕获异常_跟踪异常–第5部分–使用Spring进行计划

spring 异常捕获异常看来我终于快要结束本系列有关使用Spring进行错误跟踪的博客了,对于那些还没有阅读该系列博客的人,我正在编写一个简单但几乎具有工业实力的Spring应用程序,扫描日志文件中的异常,然后生成报告。 在本系列的第…

亿佰特串口服务器接入阿里云MQTT协议的软件配置教程

在之前的文章中我们了解到虚拟串口软件作为TCP客户端来结合串口服务器使用,这一期我们来看一下串口服务器怎样接入阿里云物模型。 步骤详尽,一文读懂。 1.阿里云MQTT环境配置 ③点击“创建产品”,配置产品名称,选择“自定义品类…

三种安防监控摄像机供电方式,如何合理选择?

目前,监控摄像机的供电方式主要有以下三种:独立供电模式、集中供电模式、POE供电模式,其中POE供电模式又分为四种情况。那么,你对安防监控摄像机的这三种供电方式是否有所了解呢?接下来就由飞畅科技的小编来为大家详细…

串口服务器NB114产品MQTT协议软件配置教程

串口服务器(NB114)配置 串口服务器连接MQTT服务器方法参考“串口服务器用户手册”,不再重复说明。 3.设备驱动添加与处理 本次例程需要使用到TPC的两路串口以及两种收发协议,详细说明如下: ①在MCGS官网下载“MCGS_…

使用Spring Boot和Kubernetes构建微服务架构

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 在本教程中,您将使用Kubernetes将Spring Boot微服务架构部署到Google Clo…

渝粤教育,我是客服,2022重返王者荣耀,再露凶残,欢迎约战

渝粤教育,我是客服,2022重返王者荣耀,再露凶残,欢迎约战

物联网串口服务器的功能和作用

一、串口服务器是什么? 串口服务器提供串口转网络功能,能够将RS-232/485/422串口转换成TCP/IP网络接口,实现RS-232/485/422串口与TCP/IP网络接口的数据双向透明传输。使得串口设备能够立即具备TCP/IP网络接口功能,连接网络进行数据通信,极大的扩展串口设…

[渝粤教育] 三峡大学 电力电子技术(Ⅱ) 参考 资料

教育 -电力电子技术(Ⅱ)-章节资料考试资料-三峡大学【】 第一章 单元测试 1、【单选题】整流是以下哪两种电能形式之间的转换? A、AC-AC B、AC-DC C、DC-AC D、DC-DC 参考资料【 】 2、【单选题】充电宝在给手机锂电池充电的时候采用了以下哪…

为什么说无线数传电台和增益天线是相辅相成关系?

最近我司数传电台客户在使用超宽频(410-493MHz)25W数传电台和433MHz天线的过程中遇到模块失配天线的问题,下面我们不妨再来聊聊这个话题。 问题:客户在使用这个数传电台的时候,配备某些天线的时候不能够正常工作&#…

什么是安防工业交换机,其光口、电口,如何实现电、光转化

对于从事安防传输设备行业的朋友们来说,相信大家对安防工业交换机应该都不陌生吧。我们深知安防工程要的不仅是交换机产品,更需要的是匹配应用需求特点的高性价比。而客户在购买工业交换机时,很多客户都会要几光几电的交换机,那么…

[渝粤教育] 三峡大学 自动控制理论 参考 资料

教育 -自动控制理论-章节资料考试资料-三峡大学【】 第1周作业 第一章综合测验 1、【单选题】通过测量输出量,产生一个与输出信号存在确定函数比例关系值的元件称为( ) A、比较元件 B、给定元件 C、反馈元件 D、放大元件 参考资料【 】 2、【单选题】如果被调量随着…