淺析mongodb

當爬取數據時候,咱們可能須要緩存大量的數據,可是又無須任何複雜的鏈接操做,所以咱們將選用NoSQL數據庫,這種數據庫比傳統的關係型數據庫更易於操做,這裏我想主要說一下目前很是流行的MongoDB做爲緩存數據庫。mongodb

什麼是NoSQL?

NoSQL(NoSQL = Not Only SQL ),意即"不只僅是SQL"。NoSQL,指的是非關係型的數據庫。數據庫

在現代的計算系統上天天網絡上都會產生龐大的數據量。編程

這些數據有很大一部分是由關係數據庫管理系統(RDMBS)來處理。 1970年 E.F.Codd's提出的關係模型的論文 "A relational model of data for large shared data banks",這使得數據建模和應用程序編程更加簡單。json

經過應用實踐證實,關係模型是很是適合於客戶服務器編程,遠遠超出預期的利益,今天它是結構化數據存儲在網絡和商務應用的主導技術,然而,對於大多數據集的狀況,數據量太大使其難以存放在單一服務器上,此時就須要擴展到多臺服務器上。不過,關係模型對於這種擴展的支持並不夠好,由於在查詢多個表時,數據可能在不一樣的服務器上,相反,NoSQL數據庫一般是無模式的,從設計之初就考慮了跨服務器無縫分片的問題。在NoSQL中,有多種方式能夠實現該目標,分別是列數據存儲(如Hbase),鍵值對存儲(如Redis),面向文檔的數據庫(如MongoDB)以及圖形數據庫(如Neo4j).windows

NoSQL的優勢和缺點

優勢:

——高可擴展性數組

——分佈式計算緩存

——低成本服務器

——架構的靈活性,半結構化數據網絡

——沒有複雜的關係數據結構

缺點:

——沒有標準化

——有限的查詢功能(到目前爲止)

——最終一致是不直觀的程序

NoSQL 數據庫分類

類型 部分表明

 

特色
列存儲

Hbase

Cassandra

Hypertable

顧名思義,是按列存儲數據的。最大的特色是方便存儲結構化和半結構化數據,方便作數據壓縮,對針對某一列或者某幾列的查詢有很是大的IO優點。

文檔存儲

MongoDB

CouchDB

文檔存儲通常用相似json的格式存儲,存儲的內容是文檔型的。這樣也就有有機會對某些字段創建索引,實現關係數據庫的某些功能。

key-value存儲

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

能夠經過key快速查詢到其value。通常來講,存儲無論value的格式,照單全收。(Redis包含了其餘功能)

圖存儲

Neo4J

FlockDB

圖形關係的最佳存儲。使用傳統關係數據庫來解決的話性能低下,並且設計使用不方便。

對象存儲

db4o

Versant

經過相似面嚮對象語言的語法操做數據庫,經過對象的方式存取數據。

xml數據庫

Berkeley DB XML

BaseX

高效的存儲XML數據,並支持XML的內部查詢語法,好比XQuery,Xpath。

好了,說完了NoSQL,那麼對非關係型數據庫有了簡單的理解,那下面具體的介紹一下MongoDB

什麼是MongoDB?

MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。

在高負載的狀況下,添加更多的節點,能夠保證服務器性能。

MongoDB 旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔相似於 JSON 對象。字段值能夠包含其餘文檔,數組及文檔數組。

MongoDB的主要特色是什麼?

————MongoDB 是一個面向文檔存儲的數據庫,操做起來比較簡單和容易。

————你能夠在MongoDB記錄中設置任何屬性的索引 來實現更快的排序。

————你能夠經過本地或者網絡建立數據鏡像,這使得MongoDB有更強的擴展性。

————若是負載的增長,它能夠分佈在計算機網絡中的其餘節點上(這就是所謂的分片)。

————Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。

————MongoDb 使用update()命令能夠實現替換完成的文檔(數據)或者一些指定的數據字段 。

————Mongodb中的Map/reduce主要是用來對數據進行批量處理和聚合操做。

————Map和Reduce。Map函數調用emit(key,value)遍歷集合中全部的記錄,將key與value傳給Reduce函數進行處理。

————Map函數和Reduce函數是使用Javascript編寫的,並能夠經過db.runCommand或mapreduce命令來執行MapReduce操做。

————GridFS是MongoDB中的一個內置功能,能夠用於存放大量小文件。

————MongoDB容許在服務端執行腳本,能夠用Javascript編寫某個函數,直接在服務端執行,也能夠把函數的定義存儲在服務端,下次直接調用便可。

————MongoDB支持各類編程語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

————MongoDB安裝簡單。

MongoDB的下載

能夠在mongodb官網下載該安裝包,地址爲:https://www.mongodb.com/download-center#community

MongoDB的安裝

第一步:點擊安裝:mongodb-win32-x86_64-2008plus-ssl-3.0.1-signed.msi

第二步:贊成協議

第三步:自定義安裝

第四步:繼續下一步

 第五步:完成

 

Mongodb的配置

 首先,建立數據庫文件的存放位置

   好比d:/mongodb/data/db。啓動mongodb服務以前須要必須建立數據庫文件的存放文件夾,不然命令不會自動建立,並且不能啓動成功。

打開cmd(windows鍵+r輸入cmd)命令行,進入D:\mongodb\bin目錄(如圖先輸入d:進入d盤而後輸入cd d:\mongodb\bin),

輸入以下的命令啓動mongodb服務:

D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db

 而後輸入

mongod.exe --dbpath=d:\db

最後啓動服務

net start mongodb
相關文章
相關標籤/搜索