NoSQL—mongodb常見使用和入門

NoSQL介紹:

NoSQL數據管理系統是目前非常流行的一種非關系性、分布式、不支持ACID設計規范式的數據庫;NoSQL簡單的數據模型、元數據和數據分離、弱一致性、高吞吐量、高水平擴展能力和低端硬件集群使其流行的主要原因,而mongodb就是NoSQL數據庫一種非常流行的實現方式。

 

常見的NoSQL數據存儲模型
列式模型 文檔類型

應用場景:在分布式文件系統之上提供支持隨機讀寫分離的分布式數據庫

典型產品:HBase、Hypertable、Cassandra
數據模型:以“列”為中心進行存儲,將相同的列存儲在一起
優點:快速查詢、高可擴展性、易于實現分布式擴展

應用場景:非強事務的web應用
典型產品:MongoDB、Elasticsearch、CouchDB
數據模型:鍵值模型,以文檔存儲
優點:數據模型無須事先定義
鍵值模型 圖式模型
應用場景:
內容緩存,用于大量并發數據訪問的高負載場景
典型產品:DynamoDB、Redis、Riak
數據模型:基于hash表實現的key-value
優點:查詢速度快
應用場景:社交網絡、推薦系統、關系圖譜
典型產品:Neo4j、Infinite Graph、TITAN
數據模型:圖式結構
優點:適用于圖式場景計算

 

MongoDB的復制功能有兩種類型:

第一種類型:master/slave模型,這類模型與MySQL模型基本相同

第二種模型:replica set復制集、副本集;服務于同一數據集的多個mongodb實例;與mysql的主從類似,但是要比mysql主從工作效率要高

特性:(1)至少三個節點,至少為奇數個節點

(2)當節點數不足時,使用arbiter(仲裁者)來參與

(3)heartbeat每2s中的信息監測以及自動失效轉移

MongoDB復制集中特殊節點的類型:

(1)0優先級的節點:冷備節點,不會被選舉成為主節點,但可以參與選舉

(2)被隱藏的節點:首先是一個0優先級的從節點,且對客戶端不可見

(3)延遲復制的節點:首先是一個0優先級的從節點,且復制時間落后于主節點一個固定時長

(4)arbiter:仲裁者,沒有數據,只負責仲裁

MongoDB的復制架構:
(1)oplog:
是存儲在local數據庫中,最小為1G,大小為固定的文件;同時又只有主節點才可以有寫入操作,而從節點不會有寫入操作;而local數據存放了數據集的所有元數據和oplog,用于存儲oplog的是一個名為oplog.rs的collection,oplog.rs的大小依賴于OS和文件系統;但其大小可以自定義(oplogSize)

(2)heartbeat: 用于監測各個節點復制時的信息

 

MongoDB復制過程:

(1)初時同步:initial sync

首先克隆所有數據庫

其次應用數據集的所有改變;復制oplog并應用于本地

最后為所有collection構建索引

(2)回滾后追趕:post-rollback catch-up

(3)切分塊遷移: sharding chunk mingratings

 

MongoDB的索引類型:

單字段索引、組合索引(多字段索引)、多鍵索引、空間索引、文本索引、hash索引

 

以上是本人對學習mongodb的一些總結,只總結了一些基礎知識,常用命令沒有總結。大家有什么好的建議多給提一下。O(∩_∩)O

原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/7727

(1)
馬行空馬行空
上一篇 2015-08-31
下一篇 2015-09-01

相關推薦

  • Linux GNU AWK使用

                                    Linux GNU AWK使用 本章內容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 awk條件判斷…

    系統運維 2016-10-01
  • bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示

    1)bash的工作特性之命令執行狀態返回值; 在 Linux 下,任意一個命令執行結束之后,bash都會返回0-255之間的數值以表示命令執行成功與否;其返回值保存于bash的特殊變量$?中; 其中0表示:執行成功;1-255表示執行錯誤; 例如: [root@localhost ~]# ls anaconda-ks.cfg initial-setup-ks…

    Linux干貨 2016-11-06
  • 分布式系統的事務處理

    當我們在生產線上用一臺服務器來提供數據服務的時候,我會遇到如下的兩個問題: 1)一臺服務器的性能不足以提供足夠的能力服務于所有的網絡請求。 2)我們總是害怕我們的這臺服務器停機,造成服務不可用或是數據丟失。 于是我們不得不對我們的服務器進行擴展,加入更多的機器來分擔性能上的問題,以及來解決單點故障問題。 通常,我們會通過兩種手段來擴展我們的數據服務: 1)數…

    Linux干貨 2016-08-15
  • 在軟raid10上使用LVM,并且進行磁盤配額,最后還原。

    實驗環境 1)centos 7.3 2)lvm格式化的文件系統為ext4 3)磁盤為單一磁盤的不同分區 4)使用軟件:mdadm,lvm2 tools,quota 軟raid10的創建 一,兩個raid1的創建 1)對磁盤進行分區,使用工具fdidk,每個大小為1GB,類型改為fd。我的分區情況:/dev/sda{6,7,8,9}將會拿來做為raid的磁盤?!?/p>

    Linux干貨 2017-03-16
  • 初窺門徑之腳本書寫

    一、幾個腳本的編寫: 1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 #!/bin/bash echo "HOSTNAME: $HOSTNAME" echo "IPV4 A…

    Linux干貨 2016-08-15
  • 第十五周作業

    溫故知新 1、總結sed和awk的詳細用法 sed [OPTION]… ‘script’ [input-file] …script:地址定界編輯命令 常用選項:-n:不輸出模式空間中的內容至屏幕;-e script, –expression=script:多點編輯;-f /PATH/TO/SED_S…

    Linux干貨 2017-12-04
欧美性久久久久