自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MongoDB、Hbase、Redis等NoSQL優(yōu)劣勢、應(yīng)用場景

數(shù)據(jù)庫 其他數(shù)據(jù)庫 Redis MongoDB
NoSQL數(shù)據(jù)庫在整個數(shù)據(jù)庫領(lǐng)域的江湖地位已經(jīng)不言而喻。在大數(shù)據(jù)時代,雖然RDBMS很優(yōu)秀,但是面對快速增長的數(shù)據(jù)規(guī)模和日漸復(fù)雜的數(shù)據(jù)模型,RDBMS漸漸力不從心,無法應(yīng)對很多數(shù)據(jù)庫處理任務(wù)。

 [[241939]]

NoSQL的四大種類

NoSQL數(shù)據(jù)庫在整個數(shù)據(jù)庫領(lǐng)域的江湖地位已經(jīng)不言而喻。在大數(shù)據(jù)時代,雖然RDBMS很優(yōu)秀,但是面對快速增長的數(shù)據(jù)規(guī)模和日漸復(fù)雜的數(shù)據(jù)模型,RDBMS漸漸力不從心,無法應(yīng)對很多數(shù)據(jù)庫處理任務(wù),這時NoSQL憑借易擴展、大數(shù)據(jù)量和高性能以及靈活的數(shù)據(jù)模型成功的在數(shù)據(jù)庫領(lǐng)域站穩(wěn)了腳跟。

目前大家基本認同將NoSQL數(shù)據(jù)庫分為四大類:鍵值存儲數(shù)據(jù)庫,文檔型數(shù)據(jù)庫,列存儲數(shù)據(jù)庫和圖形數(shù)據(jù)庫,其中每一種類型的數(shù)據(jù)庫都能夠解決關(guān)系型數(shù)據(jù)不能解決的問題。在實際應(yīng)用中,NoSQL數(shù)據(jù)庫的分類界限其實沒有那么明顯,往往會是多種類型的組合體。

主流nosql的詳解:MongoDB、Hbase、Redis

MongoDB

MongoDB 是一個高性能,開源,無模式的文檔型數(shù)據(jù)庫,開發(fā)語言是C++。它在許多場景下可用于替代統(tǒng)的關(guān)系型數(shù)據(jù)庫或鍵/值存儲方式。

1.MongoDB特點

  •  所用語言:C++
  •  特點:保留了SQL一些友好的特性(查詢,索引)。
  •  使用許可: AGPL(發(fā)起者: Apache)
  •  協(xié)議: Custom, binary( BSON)
  •  Master/slave復(fù)制(支持自動錯誤恢復(fù),使用 sets 復(fù)制)
  •  內(nèi)建分片機制
  •  支持 javascript表達式查詢
  •  可在服務(wù)器端執(zhí)行任意的 javascript函數(shù)
  •  update-in-place支持比CouchDB更好
  •  在數(shù)據(jù)存儲時采用內(nèi)存到文件映射
  •  對性能的關(guān)注超過對功能的要求
  •  建議***打開日志功能(參數(shù) --journal)
  •  在32位操作系統(tǒng)上,數(shù)據(jù)庫大小限制在約2.5Gb
  •  空數(shù)據(jù)庫大約占 192Mb
  •  采用 GridFS存儲大數(shù)據(jù)或元數(shù)據(jù)(不是真正的文件系統(tǒng))

2.MongoDB優(yōu)點:

1)更高的寫負載,MongoDB擁有更高的插入速度。

2)處理很大的規(guī)模的單表,當數(shù)據(jù)表太大的時候可以很容易的分割表。

3)高可用性,設(shè)置M-S不僅方便而且很快,MongoDB還可以快速、安全及自動化的實現(xiàn)節(jié)點 (數(shù)據(jù)中心)故障轉(zhuǎn)移。

4)快速的查詢,MongoDB支持二維空間索引,比如管道,因此可以快速及精確的從指定位置 獲取數(shù)據(jù)。MongoDB在啟動后會將數(shù)據(jù)庫中的數(shù)據(jù)以文件映射的方式加載到內(nèi)存中。如果內(nèi) 存資源相當豐富的話,這將極大地提高數(shù)據(jù)庫的查詢速度。

5)非結(jié)構(gòu)化數(shù)據(jù)的爆發(fā)增長,增加列在有些情況下可能鎖定整個數(shù)據(jù)庫,或者增加負載從而 導(dǎo)致性能下降,由于MongoDB的弱數(shù)據(jù)結(jié)構(gòu)模式,添加1個新字段不會對舊表格有任何影響, 整個過程會非常快速。

3.MongoDB缺點:

1)不支持事務(wù)。

2)MongoDB占用空間過大 。

3)MongoDB沒有成熟的維護工具。

4.MongoDB應(yīng)用場景

1.)適用于實時的插入、更新與查詢的需求,并具備應(yīng)用程序?qū)崟r數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性;

2) 非常適合文檔化格式的存儲及查詢;

3.)高伸縮性的場景:MongoDB 非常適合由數(shù)十或者數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。

4.)對性能的關(guān)注超過對功能的要求。

HBase

HBase 是 Apache Hadoop 中的一個子項目,屬于 bigtable 的開源版本,所實現(xiàn)的語言為Java(故依賴 Java SDK)。HBase 依托于 Hadoop 的 HDFS(分布式文件系統(tǒng))作為最基本存儲基礎(chǔ)單元。

1.HBase 特點:

  •  所用語言: Java
  •  特點:支持數(shù)十億行X上百萬列
  •  使用許可: Apache
  •  協(xié)議:HTTP/REST (支持 Thrift,見編注4)
  •  在 BigTable之后建模
  •  采用分布式架構(gòu) Map/reduce
  •  對實時查詢進行優(yōu)化
  •  高性能 Thrift網(wǎng)關(guān)
  •  通過在server端掃描及過濾實現(xiàn)對查詢操作預(yù)判
  •  支持 XML, Protobuf, 和binary的HTTP
  •  Cascading, hive, and pig source and sink modules
  •  基于 Jruby( JIRB)的shell
  •  對配置改變和較小的升級都會重新回滾
  •  不會出現(xiàn)單點故障
  •  堪比MySQL的隨機訪問性能

3. HBase 優(yōu)點

1) 存儲容量大,一個表可以容納上億行,上百萬列;

2.)可通過版本進行檢索,能搜到所需的歷史版本數(shù)據(jù);

3.)負載高時,可通過簡單的添加機器來實現(xiàn)水平切分擴展,跟Hadoop的無縫集成保障了其數(shù)據(jù)可靠性(HDFS)和海量數(shù)據(jù)分析的高性能(MapReduce);

4.)在第3點的基礎(chǔ)上可有效避免單點故障的發(fā)生。

4.HBase 缺點

1. 基于Java語言實現(xiàn)及Hadoop架構(gòu)意味著其API更適用于Java項目;

2. node開發(fā)環(huán)境下所需依賴項較多、配置麻煩(或不知如何配置,如持久化配置),缺乏文檔;

3. 占用內(nèi)存很大,且鑒于建立在為批量分析而優(yōu)化的HDFS上,導(dǎo)致讀取性能不高;

4. API相比其它 NoSql 的相對笨拙。

5.HBase 適用場景

1)bigtable類型的數(shù)據(jù)存儲;

2)對數(shù)據(jù)有版本查詢需求;

3)應(yīng)對超大數(shù)據(jù)量要求擴展簡單的需求。

Redis

Redis 是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。目前由VMware主持開發(fā)工作。

1.Redis 特點:

  •  所用語言:C/C++
  •  特點:運行異常快
  •  使用許可: BSD
  •  協(xié)議:類 Telnet
  •  有硬盤存儲支持的內(nèi)存數(shù)據(jù)庫,
  •  但自2.0版本以后可以將數(shù)據(jù)交換到硬盤(注意, 2.4以后版本不支持該特性!)
  •  Master-slave復(fù)制(見編注3)
  •  雖然采用簡單數(shù)據(jù)或以鍵值索引的哈希表,但也支持復(fù)雜操作,例如 ZREVRANGEBYSCORE。
  •  INCR & co (適合計算極限值或統(tǒng)計數(shù)據(jù))
  •  支持 sets(同時也支持 union/diff/inter)
  •  支持列表(同時也支持隊列;阻塞式 pop操作)
  •  支持哈希表(帶有多個域的對象)
  •  支持排序 sets(高得分表,適用于范圍查詢)
  •  Redis支持事務(wù)
  •  支持將數(shù)據(jù)設(shè)置成過期數(shù)據(jù)(類似快速緩沖區(qū)設(shè)計)
  •  Pub/Sub允許用戶實現(xiàn)消息機制

2. Redis 優(yōu)勢

1)非常豐富的數(shù)據(jù)結(jié)構(gòu);

2.)Redis提供了事務(wù)的功能,可以保證一串 命令的原子性,中間不會被任何操作打斷;

3.)數(shù)據(jù)存在內(nèi)存中,讀寫非常的高速,可以達到10w/s的頻率。

3.Redis 缺點

1) Redis3.0后才出來官方的集群方案,但仍存在一些架構(gòu)上的問題;

2.)持久化功能體驗不佳——通過快照方法實現(xiàn)的話,需要每隔一段時間將整個數(shù)據(jù)庫的數(shù)據(jù)寫到磁盤上,代價非常高;而aof方法只追蹤變化的數(shù)據(jù),類似于mysql的binlog方法,但追加log可能過大,同時所有操作均要重新執(zhí)行一遍,恢復(fù)速度慢;

3)由于是內(nèi)存數(shù)據(jù)庫,所以,單臺機器,存儲的數(shù)據(jù)量,跟機器本身的內(nèi)存大小。雖然redis本身有key過期策略,但是還是需要提前預(yù)估和節(jié)約內(nèi)存。如果內(nèi)存增長過快,需要定期刪除數(shù)據(jù)。

4.Redis 應(yīng)用場景:

***應(yīng)用場景:適用于數(shù)據(jù)變化快且數(shù)據(jù)庫大小可遇見(適合內(nèi)存容量)的應(yīng)用程序。

例如:微博、數(shù)據(jù)分析、實時數(shù)據(jù)搜集、實時通訊等。

責(zé)任編輯:龐桂玉 來源: 民工哥技術(shù)之路
相關(guān)推薦

2023-06-27 13:51:07

FPGA數(shù)據(jù)中心程序

2015-08-17 14:48:38

LiFiLiFi網(wǎng)絡(luò)優(yōu)劣勢解析

2020-08-24 15:36:26

Hadoop大數(shù)據(jù)數(shù)據(jù)

2023-03-06 16:29:56

2011-08-03 14:49:57

框架

2015-10-13 09:48:22

GCE網(wǎng)絡(luò)應(yīng)用云應(yīng)用部署

2011-03-09 09:08:47

HTML5AndroidiOS

2013-10-15 10:45:26

VDIBYOD

2011-06-16 11:46:25

投影機技巧

2023-04-12 09:23:24

汽車自動駕駛

2011-10-31 13:06:10

2015-05-26 09:15:14

開源PaaS 云平臺Cloud Found

2015-07-08 09:19:56

HaaSHadoop即服務(wù)云端Hadoop

2011-09-22 09:55:40

投影儀評測

2010-03-23 14:32:11

混合虛擬化

2018-10-31 12:51:04

2013-08-26 10:21:31

Android制造商分析

2022-08-10 07:05:35

vscodePyCharm開發(fā)工具

2019-04-11 10:26:15

架構(gòu)運維技術(shù)

2022-08-10 14:03:01

MySQL數(shù)據(jù)庫存儲
點贊
收藏

51CTO技術(shù)棧公眾號