推薦:《MongoDB影片教學》
#簡介
MongoDB是基於分散式文件儲存的資料庫。由C 語言編寫。旨在為WEB應用提供可擴展的高效能資料儲存解決方案。
MongoDB是一個介於關聯(lián)式資料庫和非關聯(lián)式資料庫之間的產品,是非關聯(lián)式資料庫當中功能最豐富,最像關聯(lián)式資料庫的。他支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料類型。 Mongo最大的特點是他支援的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現(xiàn)類似關係型資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
特點
它的特點是高效能、易於部署、易於使用,儲存資料非常方便。主要功能特性有:
*面向集合存儲,易存儲物件類型的資料。
*模式自由。
*支援動態(tài)查詢。
*支援完全索引,包含內部物件。
*支援查詢。
*支援複製和故障復原。
*使用高效的二進位資料存儲,包括大型物件(如視訊等)。
*自動處理碎片,以支援雲(yún)端運算層次的擴展性。
*支援RUBY,PYTHON,JAVA,C ,PHP,C#等多種語言。
*檔案儲存格式為BSON(一種JSON的擴充)。
*可透過網(wǎng)路存取。
使用原則
? ? ? ?所謂「面向集合」(Collection-Oriented),意思是資料被分組儲存在資料集中,稱為一個集合(Collection)。每個集合在資料庫中都有一個唯一的識別名,並且可以包含無限數(shù)目的文件。集合的概念類似關係型資料庫(RDBMS)裡的表格(table),不同的是它不需要定義任何模式(schema)。 Nytro MegaRAID技術中的快閃記憶體快取演算法,能夠快速辨識資料庫內大數(shù)據(jù)集中的熱數(shù)據(jù),提供一致的效能改進。
? ? ? ?模式自由(schema-free),表示對於儲存在mongodb資料庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的檔案儲存在同一個資料庫裡。
? ? ? ?儲存在集合中的文檔,被儲存為鍵-值對的形式。鍵用於唯一標識一個文檔,為字串類型,而值則可以是各種複雜的文件類型。我們稱這種儲存形式為BSON(Binary Serialized Document Format)。
MongoDB已經(jīng)在多個網(wǎng)站部署
主要場景:
1)網(wǎng)站即時資料處理。它非常適合即時的插入、更新與查詢,並具備網(wǎng)站即時資料儲存所需的複製及高度伸縮性。
2)快取。由於效能很高,它適合作為資訊基礎設施的快取層。在系統(tǒng)重新啟動之後,由它搭建的持久化快取層可以避免下層的資料來源過載。
3)高伸縮性的場景。非常適合由數(shù)十或數(shù)百臺伺服器組成的資料庫,它的路線圖中已經(jīng)包含對MapReduce引擎的內建支援。
不適用的場景如下:?
1)要求高度事務性的系統(tǒng)。
2)傳統(tǒng)的商業(yè)智慧應用。
3)複雜的跨文件(表)級聯(lián)查詢。
系統(tǒng)介紹
? ? ? ?分散式檔案系統(tǒng)(Distributed File System)是指檔案系統(tǒng)管理的實體儲存資源不一定直接連接在本機節(jié)點上,而是透過電腦網(wǎng)路與節(jié)點相連。分散式檔案系統(tǒng)的設計是基於客戶機/伺服器模式。一個典型的網(wǎng)路可能包括多個供多用戶存取的伺服器。另外,對等特性允許一些系統(tǒng)扮演客戶機和伺服器的雙重角色。
????????HBase是一個分散式的、以列導向的開源資料庫,該技術來自Fay Chang 所撰寫的Google論文「Bigtable:一個結構化資料的分散式儲存系統(tǒng)。
???Data Mart是基於自有技術研發(fā)的一款資料儲存、資料處理的軟體。Yonghong Data Mart的分散式檔案儲存系統(tǒng)(ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將伺服器叢集內所有節(jié)點上儲存的文件統(tǒng)一管理和儲存。
適用場景
????????MongoDB 的主要目標是在鍵/值儲存方式(提供了高效能和高度伸縮)和傳統(tǒng)的RDBMS 系統(tǒng)(具有豐富的功能)之間架起一座橋樑,它集兩者的優(yōu)勢於一身。根據(jù)官方網(wǎng)站的描述,Mongo 適用於以下場景。
● 網(wǎng)站資料:Mongo 非常適合即時的插入,更新與查詢,並具備網(wǎng)站即時資料儲存所需的複製及高度伸縮性。
● 快?。河伸缎芎芨撸琈ongo 也適合作為資訊基礎架構的快取層。在系統(tǒng)重新啟動之後,由Mongo 建構的持久化快取層可以避免下層的資料來源過載。
● 大尺寸、低價值的資料:使用傳統(tǒng)的關係型資料庫儲存一些資料時可能會比較昂貴,在此之前,很多時候程式設計師往往會選擇傳統(tǒng)的檔案來儲存。
● 高伸縮性的場景:Mongo 非常適合由數(shù)十或數(shù)百臺伺服器組成的資料庫,Mongo 的路線圖中已經(jīng)包含對MapReduce 引擎的內建支援。
● 用於物件及JSON 資料的儲存:Mongo 的BSON 資料格式非常適合文件化格式的儲存及查詢。
不適場景
● 高度事務性的系統(tǒng):例如,銀行或會計系統(tǒng)。傳統(tǒng)的關係型資料庫目前還是更適用於需要大量原子性複雜事務的應用程式。
● 傳統(tǒng)的商業(yè)智慧應用:針對特定問題的BI 資料庫會產生高度最佳化的查詢方式。對於此類應用,資料倉儲可能是更合適的選擇。
● 需要SQL 的問題。
應用案例
????????在下列出一些公司MongoDB的實際應用:
- ???????數(shù)十億筆記錄。
FourSquare,基於位置的社群網(wǎng)站,在Amazon EC2的伺服器上使用MongoDB分享資料。
Shutterfly,以互聯(lián)網(wǎng)為基礎的社會和個人出版服務,使用MongoDB的各種持久性資料儲存的要求。
bit.ly, 一個基於Web的網(wǎng)址縮短服務,使用MongoDB的儲存自己的資料。
spike.com,一個MTV網(wǎng)路的聯(lián)營公司, spike.com使用MongoDB的。
Intuit公司,一個為小型企業(yè)和個人的軟體和服務供應商,為小型企業(yè)使用MongoDB的追蹤使用者的資料。
sourceforge.net,資源網(wǎng)站查找,創(chuàng)建和發(fā)布開源軟體免費,使用MongoDB的後端儲存。
etsy.com ,一個購買和出售手工製作物品網(wǎng)站,使用MongoDB。
紐約時報,領先的線上新聞入口網(wǎng)站之一,使用MongoDB。
CERN,著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的資料使用MongoDB。
以上是詳解MongoDB之特性、原理、使用情境、應用案例的詳細內容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在開發(fā)一個電商網(wǎng)站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統(tǒng)的精度和效率,我決定採用更專業(yè)的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統(tǒng)的性能??梢酝ㄟ^一下地址學習composer:學習地址

CentOS系統(tǒng)上GitLab數(shù)據(jù)庫部署指南選擇合適的數(shù)據(jù)庫是成功部署GitLab的關鍵步驟。 GitLab兼容多種數(shù)據(jù)庫,包括MySQL、PostgreSQL和MongoDB。本文將詳細介紹如何選擇並配置這些數(shù)據(jù)庫。數(shù)據(jù)庫選擇建議MySQL:一款廣泛應用的關係型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),性能穩(wěn)定,適用於大多數(shù)GitLab部署場景。 PostgreSQL:功能強大的開源RDBMS,支持複雜查詢和高級特性,適合處理大型數(shù)據(jù)集。 MongoDB:流行的NoSQL數(shù)據(jù)庫,擅長處理海

MongoDB適合處理大規(guī)模非結構化數(shù)據(jù),Oracle適用于需要事務一致性的企業(yè)級應用。1.MongoDB提供靈活性和高性能,適合處理用戶行為數(shù)據(jù)。2.Oracle以穩(wěn)定性和強大功能著稱,適用于金融系統(tǒng)。3.MongoDB使用文檔模型,Oracle使用關系模型。4.MongoDB適合社交媒體應用,Oracle適合企業(yè)級應用。

MongoDB適合非結構化數(shù)據(jù)和高擴展性需求,Oracle適合需要嚴格數(shù)據(jù)一致性的場景。 1.MongoDB靈活存儲不同結構數(shù)據(jù),適合社交媒體和物聯(lián)網(wǎng)。 2.Oracle結構化數(shù)據(jù)模型確保數(shù)據(jù)完整性,適用於金融交易。 3.MongoDB通過分片橫向擴展,Oracle通過RAC縱向擴展。 4.MongoDB維護成本低,Oracle維護成本高但支持完善。

CentOS系統(tǒng)下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統(tǒng)上實施MongoDB備份的多種策略,以確保數(shù)據(jù)安全和業(yè)務連續(xù)性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環(huán)境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數(shù)據(jù)庫名稱-o/備份目錄此命令會將指定數(shù)據(jù)庫的數(shù)據(jù)及元數(shù)據(jù)導出到指定的備份目錄。

要設置 MongoDB 用戶,請按照以下步驟操作:1. 連接到服務器並創(chuàng)建管理員用戶。 2. 創(chuàng)建要授予用戶訪問權限的數(shù)據(jù)庫。 3. 使用 createUser 命令創(chuàng)建用戶並指定其角色和數(shù)據(jù)庫訪問權限。 4. 使用 getUsers 命令檢查創(chuàng)建的用戶。 5. 可選地設置其他權限或授予用戶對特定集合的權限。

要啟動 MongoDB 服務器:在 Unix 系統(tǒng)中,運行 mongod 命令。在 Windows 系統(tǒng)中,運行 mongod.exe 命令??蛇x:使用 --dbpath、--port、--auth 或 --replSet 選項設置配置。使用 mongo 命令驗證連接是否成功。

在Debian系統(tǒng)上為MongoDB數(shù)據(jù)庫加密,需要遵循以下步驟:第一步:安裝MongoDB首先,確保您的Debian系統(tǒng)已安裝MongoDB。如果沒有,請參考MongoDB官方文檔進行安裝:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/第二步:生成加密密鑰文件創(chuàng)建一個包含加密密鑰的文件,並設置正確的權限:ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512
