日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

redis nosql_NoSql数据库:Cassandra,Mongo,Redis数据库比较

發(fā)布時(shí)間:2023/12/3 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis nosql_NoSql数据库:Cassandra,Mongo,Redis数据库比较 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

redis nosql

1.什么是NoSql數(shù)據(jù)庫(kù)?

NoSql(不僅是Sql)數(shù)據(jù)庫(kù)是可水平擴(kuò)展,持久存儲(chǔ)半結(jié)構(gòu)或非結(jié)構(gòu)化數(shù)據(jù)并具有靈活模式的非關(guān)系數(shù)據(jù)庫(kù)。 這些數(shù)據(jù)庫(kù)支持多種數(shù)據(jù)模型,例如鍵值,文檔,列族,基于圖形的,內(nèi)存中的等等,用于管理和訪問(wèn)數(shù)據(jù)。 NoSql數(shù)據(jù)庫(kù)最適合于構(gòu)建現(xiàn)代應(yīng)用程序,這些應(yīng)用程序需要大數(shù)據(jù)和大量請(qǐng)求,高度可擴(kuò)展,低延遲,高性能和靈活的數(shù)據(jù)模型,以提供出色的客戶(hù)體驗(yàn)。

在本文中,我們將討論NoSql數(shù)據(jù)庫(kù),Cassandra,Mongo和Redis數(shù)據(jù)庫(kù)的介紹,以及何時(shí)使用這些NoSql數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)更好的性能。

2. NoSql數(shù)據(jù)庫(kù)的功能

2.1多種型號(hào)支持

NoSql數(shù)據(jù)庫(kù)非常適合持久化,管理和訪問(wèn)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。

2.2開(kāi)源

大多數(shù)NoSql數(shù)據(jù)庫(kù)都是開(kāi)源的。 大多數(shù)云提供商通過(guò)后臺(tái)管理自動(dòng)擴(kuò)展,補(bǔ)丁更新等將這些數(shù)據(jù)庫(kù)作為托管服務(wù)提供。

2.3可擴(kuò)展性

通過(guò)向群集添加更多服務(wù)器,NoSql數(shù)據(jù)庫(kù)可進(jìn)行水平擴(kuò)展,并且與可垂直擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)不同,該群集可分布在多個(gè)地理位置(區(qū)域)中。

2.4低延遲

由于將數(shù)據(jù)復(fù)制到數(shù)據(jù)庫(kù)群集上的多個(gè)節(jié)點(diǎn),因此延遲很短。 延遲和一致性之間的權(quán)衡對(duì)于Web和移動(dòng)軟件應(yīng)用程序很重要。 無(wú)論采用哪種復(fù)制方法,都將在一致性和延遲之間進(jìn)行權(quán)衡。

2.5靈活架構(gòu)

NoSql數(shù)據(jù)庫(kù)支持具有最終一致性的靈活數(shù)據(jù)模型,并且固有地?zé)o架構(gòu)。 這使NoSql數(shù)據(jù)庫(kù)適合有效地存儲(chǔ)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。

2.6高性能,可用和容錯(cuò)

在NoSql數(shù)據(jù)庫(kù)中,數(shù)據(jù)被復(fù)制到群集中的多個(gè)節(jié)點(diǎn)以及其他區(qū)域中的群集中的節(jié)點(diǎn)。 這種特性使NoSql數(shù)據(jù)庫(kù)具有高可用性和容錯(cuò)能力。 沒(méi)有Sql數(shù)據(jù)庫(kù)針對(duì)文檔,鍵值,列族,圖等數(shù)據(jù)模型及其訪問(wèn)模式進(jìn)行了高度優(yōu)化,這些模型可提供更高的性能。

3.卡桑德拉

Apache Cassandra是一個(gè)開(kāi)源,分布式,水平可伸縮,高度可用,容錯(cuò)和寬列的NoSql數(shù)據(jù)庫(kù)。 它用Java編寫(xiě),是一個(gè)列族存儲(chǔ)數(shù)據(jù)庫(kù)。 Cassandra群集中的所有節(jié)點(diǎn)都是對(duì)等節(jié)點(diǎn),并且在Cassandra中沒(méi)有主從范式。 這使得卡桑德拉具有高可用性,容錯(cuò)能力和無(wú)單點(diǎn)故障點(diǎn)。 Cassandra集群可以水平擴(kuò)展,并且可以分布到多個(gè)數(shù)據(jù)中心。

在cassandra中寫(xiě)入速度非常快,因?yàn)樗粫?huì)先搜索然后再寫(xiě)入。 首先將數(shù)據(jù)寫(xiě)入提交日志 ,然后使用cassandra算法小心將數(shù)據(jù)反映到表中。 在cassandra中,圍繞查詢(xún)對(duì)數(shù)據(jù)模型進(jìn)行建模,即首先確定應(yīng)用程序查詢(xún),然后對(duì)其進(jìn)行數(shù)據(jù)建模。

4. MongoDB

MongoDB是一個(gè)用C ++編寫(xiě)的開(kāi)源,跨平臺(tái),面向文檔,高度可用,可擴(kuò)展且靈活的NoSql數(shù)據(jù)庫(kù)。 它適用于集合和文檔,并通過(guò)副本集提供高可用性。

MongoDB使用類(lèi)似于JSON的文檔,這些文檔可以具有多種結(jié)構(gòu)。 由于架構(gòu)較少,因此在創(chuàng)建文檔之前無(wú)需創(chuàng)建文檔結(jié)構(gòu)。 MongoDB使用MongoDB QL(查詢(xún)語(yǔ)言)來(lái)訪問(wèn)存儲(chǔ)在MongoDB中的數(shù)據(jù)。 MongoDB具有非常強(qiáng)大的聚合功能和表達(dá)性聚合框架。

5. Redis(遠(yuǎn)程字典服務(wù)器)

Redis是一個(gè)開(kāi)源且可擴(kuò)展的數(shù)據(jù)存儲(chǔ),可以用作數(shù)據(jù)庫(kù),緩存以及消息代理。 它是用ANSI C編寫(xiě)的。Redis是一種內(nèi)存中數(shù)據(jù)存儲(chǔ),可以將其狀態(tài)持久保存到磁盤(pán),即使重新啟動(dòng)Redis節(jié)點(diǎn)后也可以恢復(fù)其狀態(tài)。 它的內(nèi)存存儲(chǔ)使其超快。

6. Cassandra vs MongoDB vs Redis

  • Cassandra以Column-Family結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),而MongoDB以JSON文檔格式存儲(chǔ)數(shù)據(jù)。
  • 在Cassandra中,不建議使用二級(jí)索引,因?yàn)樗鼈儠?huì)降低性能。 在MongoDB中,最好使用索引,以避免搜索所有文檔以找到請(qǐng)求的文檔并獲得更好的性能。
  • Cassandra是實(shí)現(xiàn)高寫(xiě)入吞吐量的理想選擇,但是如果您的應(yīng)用程序需要很高的讀取并發(fā)性,請(qǐng)使用MongoDB。
  • Cassandra沒(méi)有主節(jié)點(diǎn),所有節(jié)點(diǎn)都是對(duì)等節(jié)點(diǎn),而在MongoDB中,只有一個(gè)主節(jié)點(diǎn)。
  • Cassandra最終將寫(xiě)入的數(shù)據(jù)復(fù)制到集群中復(fù)制因子中指定的節(jié)點(diǎn)數(shù),以及不同區(qū)域中集群中的節(jié)點(diǎn)數(shù)。 MongoDB需要進(jìn)行一些設(shè)置才能進(jìn)行復(fù)制。 您可以設(shè)置輔助數(shù)據(jù)庫(kù),如果主數(shù)據(jù)庫(kù)出現(xiàn)故障,則可以自動(dòng)選擇該數(shù)據(jù)庫(kù)。 在MongoDB中,讀取首先首先提交給主副本,然后再?gòu)?fù)制到輔助副本。
  • 在這些數(shù)據(jù)庫(kù)中,您可以在每條記錄上設(shè)置TTL(生存時(shí)間),因此可以在TTL過(guò)期后自動(dòng)將記錄清除。
  • Redis是鍵值數(shù)據(jù)存儲(chǔ),非常有效地用作緩存來(lái)提高應(yīng)用程序性能。
  • 擴(kuò)展Cassandra和Mongo比Redis簡(jiǎn)單得多。
  • 在Redis中,數(shù)據(jù)存儲(chǔ)的大小不能超過(guò)系統(tǒng)上的總內(nèi)存空間,即RAM加交換空間。 Mongo數(shù)據(jù)庫(kù)的大小沒(méi)有內(nèi)在限制。
  • 可以對(duì)Cassandra,MongoDB和Redis數(shù)據(jù)庫(kù)進(jìn)行集群,以實(shí)現(xiàn)高可用性,備份并增加數(shù)據(jù)存儲(chǔ)的整體大小。
  • 如果您的應(yīng)用程序需要聚合,請(qǐng)使用MongoDB。 如果您的應(yīng)用程序需要鍵值臨時(shí)存儲(chǔ),請(qǐng)使用Redis。 如果您的應(yīng)用程序需要輕松擴(kuò)展的高寫(xiě)入吞吐量的寬列存儲(chǔ),請(qǐng)使用Cassandra。

7.何時(shí)使用哪個(gè)NoSql數(shù)據(jù)庫(kù)?

以下是一些使用案例,其中不同的NoSql數(shù)據(jù)庫(kù)最適合并提供更好的性能。

為以下用例選擇Cassandra:

  • 線性可擴(kuò)展,高度可用,容錯(cuò)
  • 多數(shù)據(jù)中心部署
  • 很高的寫(xiě)入吞吐量,但讀取次數(shù)較少。
  • 您想在存儲(chǔ)的數(shù)據(jù)之上建立一個(gè)響應(yīng)Swift的報(bào)告系統(tǒng)
  • 實(shí)時(shí)數(shù)據(jù)分析
  • 您的應(yīng)用程序不需要數(shù)據(jù)庫(kù)中的ACID屬性
  • 您的應(yīng)用程序需要與Hadoop,HBase,Spark集成

選擇MongoDB用于以下用例:

  • 即時(shí)擴(kuò)展
  • 基于文檔的存儲(chǔ)
  • 很高的讀取并發(fā)
  • 緩存實(shí)時(shí)分析
  • 內(nèi)容管理
  • 寫(xiě)入有效負(fù)載高,即文檔大小高(最大16MB)
  • 在快速原型制作中非常有用
  • 適合存儲(chǔ)大文本,視頻,圖像,媒體文件等。

選擇以下情況的Redis DB:

  • 緩存更大的有效負(fù)載以提高應(yīng)用程序的性能
  • 永久緩存到磁盤(pán),需要在重新啟動(dòng)后恢復(fù)
  • 鍵值對(duì)存儲(chǔ)
  • 需要非常高的性能
  • 臨時(shí)數(shù)據(jù)存儲(chǔ),例如用戶(hù)會(huì)話
  • 可以使用其發(fā)布/訂閱模型用作消息傳遞隊(duì)列

8. Cassandra vs Mongo vs Redis DB –摘要

了解不同的NoSql數(shù)據(jù)庫(kù)對(duì)于選擇適合您的應(yīng)用程序需求的數(shù)據(jù)庫(kù)至關(guān)重要。 根據(jù)您的應(yīng)用程序使用案例選擇正確的NoSql數(shù)據(jù)庫(kù)。 如果您的數(shù)據(jù)關(guān)系太多并且需要ACID屬性,則NoSql數(shù)據(jù)庫(kù)不是一個(gè)不錯(cuò)的選擇。 為了提高應(yīng)用程序性能,請(qǐng)使用Redis作為緩存,因?yàn)樗哂袃?nèi)存存儲(chǔ)。 使用MongoDB滿足內(nèi)容管理和文檔類(lèi)型的存儲(chǔ)需求。 將Cassandra用于高度可用的寬列存儲(chǔ)箱。 選擇正確的數(shù)據(jù)庫(kù)直接影響應(yīng)用程序的性能。

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

redis nosql

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的redis nosql_NoSql数据库:Cassandra,Mongo,Redis数据库比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。