深入理解MongoDB(一)Linux下配置MongoDB全攻略
一 MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获
一 MongoDB简介
MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。
特点:
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据。模式自由。支持动态查询。支持完全索引,包含内部对象。支持查询。支持复制和故障恢复。使用高效的二进制数据存储,包括大型对象(如视频等)。自动处理碎片,以支持云计算层次的扩展性。支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。文件存储格式为BSON(一种JSON的扩展)。可通过网络访问。功能:
面向集合的存储:适合存储对象及JSON形式的数据。动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。适用场景:
网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。不适用场景:
要求高度事务性的系统。传统的商业智能应用。复杂的跨文档(表)级联查询。二 MongoDB配置全攻略
版本说明:
RedHat:6.1 x86_64
MongoDB:2.6.3
首先,我们到官网(http://www.mongodb.org/downloads)下载64位Linux 版的MongoDB;
然后,做配置MongoDB之前的准备工作;
--创建MongoDB主目录 # mkdir /usr/local/mongodb/ --解压MongoDB包到MongoDB主目录 # tar -xvf mongodb-linux-x86_64-2.6.3.tgz -C /usr/local/mongodb/ --创建MongoDB数据目录,可以存放到其他位置,比如RAID、LVM上 # mkdir /usr/local/mongodb/data/ --创建MongoDB日志目录,建议放到var目录下 # mkdir /usr/local/mongodb/log/登入後複製
接着,我们使用mongod命令启动MongoDB,再打开另一个终端,使用mongo命令连接到MongoDB;
接着,配置环境变量;# cd /usr/local/mongodb/bin/ # ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongo.log # ./mongo MongoDB shell version: 2.6.3 connecting to: test >登入後複製
为了更方便的启动和关闭MongoDB,我们可以使用Shell写脚本,当然也可以加入到service中;# pwd /usr/local/mongodb/bin # vim ~/.bash_profile # tail -n3 !$ tail -n3 ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin export PATH # source !$ source ~/.bash_profile登入後複製
我们可以测试编写脚本的正确性;# cp ssh mongodb # vim mongodb # cat mongodb #!/bin/bash # # mongod Start up the MongoDB server daemon # # source function library . /etc/rc.d/init.d/functions #定义命令 CMD=/usr/local/mongodb/bin/mongod #定义数据目录 DBPATH=/usr/local/mongodb/data #定义日志目录 LOGPATH=/usr/local/mongodb/log/mongo.log start() { #fork表示后台运行 $CMD --dbpath=$DBPATH --logpath=$LOGPATH --fork echo "MongoDB is running background..." } stop() { pkill mongod echo "MongoDB is stopped." } case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" esac登入後複製
当然,更好的方式是采用配置文件,把MongoDB需要的参数写入配置文件,然后在脚本中引用;# /etc/init.d/mongodb start about to fork child process, waiting until server is ready for connections. forked process: 1347 child process started successfully, parent exiting MongoDB is running background... # /etc/init.d/mongodb stop Terminated登入後複製
编写好配置文件后,我们需要修改启动脚本;$ vim mongodb.conf $ cat mongodb.conf #代表端口号,如果不指定则默认为27017 #port=27027 #MongoDB数据文件目录 dbpath=/usr/local/mongodb/data #MongoDB日志文件目录 logpath=/usr/local/mongodb/log/mongo.log #日志文件自动累加 logappend=true登入後複製
编写完成后,再次测试脚本的正确性。# vim mongodb # cat mongodb #!/bin/bash # # mongod Start up the MongoDB server daemon # # source function library . /etc/rc.d/init.d/functions #定义命令 CMD=/usr/local/mongodb/bin/mongod #定义配置文件路径 INITFILE=/usr/local/mongodb/mongodb.conf start() { #&表示后台启动,也可以使用fork参数 $CMD -f $INITFILE & echo "MongoDB is running background..." } stop() { pkill mongod echo "MongoDB is stopped." } case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" esac登入後複製
[root@serv03 init.d]# /etc/init.d/mongodb start MongoDB is running background... [root@serv03 init.d]# /etc/init.d/mongodb stop Terminated登入後複製
三 后记
这是深入理解MongoDB的第一篇文章,本篇文章简要地介绍了MongoDB,并把Linux下完整的配置过程呈现给读者。
四 参考资料
http://baike.baidu.com/subview/3385614/9338179.htm
Good Luck!Robin
2014年8月2日

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

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

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)
