【mongo基礎】php
MongoDB 是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。sql
SQL術語/概念 | MongoDB術語/概念 | 解釋/說明 |
---|---|---|
database | database | 數據庫 |
table | collection | 數據庫表/集合 |
row | document | 數據記錄行/文檔 |
column | field | 數據字段/域 |
index | index | 索引 |
table joins | 錶鏈接,MongoDB不支持 | |
primary key | primary key | 主鍵,MongoDB自動將_id字段設置爲主鍵 |
【mongo搭建--副本集】mongodb
一、建立mongo數據存放路徑:~/mongo_data/replset/data數據庫
二、編寫配置文件~/mongo_data/replset/mongo.confapp
dbpath=/home/XX/mongo_data/replset/data
logpath=/home/XX/mongo_data/replset/replset.log
pidfilepath=/home/XX/mongo_data/replset/replset.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.130
port=27017
oplogSize=10000
fork=true
noprealloc=true分佈式
參數解釋:測試
dbpath:數據存放目錄日誌
logpath:日誌存放路徑code
pidfilepath:進程文件,方便中止mongodbserver
directoryperdb:爲每個數據庫按照數據庫名創建文件夾存放
logappend:以追加的方式記錄日誌
replSet:replica set的名字
bind_ip:mongodb所綁定的ip地址
port:mongodb進程所使用的端口號,默認爲27017
oplogSize:mongodb操做日誌文件的最大大小。單位爲Mb,默認爲硬盤剩餘空間的5%
fork:之後臺方式運行進程
noprealloc:不預先分配存儲
三、啓動 mongo服務:mongod -f mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 29583
child process started successfully, parent exiting
四、初始化副本集
在三臺機器上任意一臺機器登錄mongo
mongo #使用admin數據庫 > use admin switched to db admin #定義副本集配置變量,這裏的 _id:」repset」 和上面命令參數「 –replSet repset」 要保持同樣。 >config = { _id:"repset", members:[ ... {_id:0,host:"192.168.1.136:27017"}, ... {_id:1,host:"192.168.1.137:27017"}, ... {_id:2,host:"192.168.1.138:27017"}] ... } #輸出(省略) #初始化副本集配置 >rs.initiate(config); #輸出成功,幾十秒至1~2分鐘 { "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 } #查看日誌,副本集啓動成功後,138爲主節點PRIMARY,13六、137爲副本節點SECONDARY。 #或者客戶端鏈接 mongo查看 #mongodb默認是從主節點讀寫數據的,副本節點上不容許讀,須要設置副本節點能夠讀。 repset:SECONDARY> db.getMongo().setSlaveOk();
測試
PHP 鏈接 mongo副本集
<?php $conn = new Mongo("mongodb://《id1》:27017,<id2>:27017,<id3>:27027",array('replicaSet'=>'replset')); $db = $conn->selectDB('test'); $data=array('name'=>'summer','time'=>time()); $collection=$db->selectCollection('message'); try{ $collection->insert($data); }catch(MongoCursorException $e){ echo $e->getMessage(); }