【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(); }