PHP Mongodb API 及使用

发表时间:2010-08-11 07:27:58 文章分类:mongodb 阅读:59978
[mycode=PHP]

Mongo的基本操作

发表时间:2010-08-11 07:22:43 文章分类:mongodb 阅读:41674
[mycode=PHP]<?php/*** 链接数据库** 五项指定* @param $host 主机IP地址,默认127.0.0.1(即localhost)* @param $port 端口号,默认27017* @param $username 登录用户名* @param $password 登录密码* @param $dbname 数据库名称*/$host = "192.168.190.19";$port = "27017";$username = "ucenter";$password = "123456";$dbname = "UcenterService";//第一种方式$m = new Mongo($host);$db = $m->$dbname;$rs = $db->authenticate($username, $password);//第二种方式/*$connect = new Mongo($host, $port);$db = $connect->$dbname;$salted = "${username}:mongo:${password}";$hash = md5($salted);$nonce = $db->command(array("getnonce" => 1));$saltedHash = md5($nonce["nonce"]."${username}${hash}");$result = $db->command(array("authenticate" => 1,"user" => $username,"nonce" => $nonce["nonce"],"key" => $saltedHas

Mongodb 查询性能的事情

发表时间:2010-08-02 08:15:06 文章分类:mongodb 阅读:47709
上一篇:Mongodb VS Mysql 查询性能,测试了 mongodb 与 mysql 的查询性能。结果说明 mongodb 性能可以, 可以代替 mysql 来使用。但是这个测试都是在百万级别,我的场景在 KW 级别。所以还要对 mongodb 在 kw 级别下测试效果。我测试环境是 4G 内存(有好些内存被其它程序占用),2kw 数据,查询随机生成 id(一次查询 20 个id)。在这样的环境中测试不理想,比较失望。平均一次查询 500ms(比 mysql 还差,特别是在并发查询下,性能较差。很底的吞吐量)。查看其索引大小(用 db.mycoll.stats() 可以查询):2kw 数据中有 1.1G 左右的索引,存储的数据在 11G 左右。测试过程中发现 iowait 占 50% 左右,看来还是 io 的瓶颈。还看到 mongodb 使用的内存不多(小于索引的大小,看来这机器不足够来测试)。换了个有可用 6G 内存的机器。在 50 个并发下,可以达到平均 100 ms 左右,算比较满意,但是并发好像能力不够强。但这个性能不能由我控制,还由机器的可用内存控制。原因就是 mongodb 没有指定可占用的内存大小,它把所有空闲内存当缓存使用,既是优点也是缺点:优点--可以最大限度提升性能;缺点--容易受其它程序干扰(占用了它的缓存)。由我测试来看,它抢占内存的能力不强。mongodb 是用内存映射文件 vmm,官方的说明:Memory Mapped Storage EngineThis is the current storage engine for MongoDB, and it uses memory-mapped files for all disk I/O. Using this strategy, the operating system's virtual memory manager is in

mongoDB应用(sql语句)

发表时间:2010-07-30 09:31:37 文章分类:mongodb 阅读:47470
查询: MySQL:    SELECT * FROM userMongo:        db.user.find() MySQL:    SELECT * FROM user WHERE name = 'starlee'Mongo:        db.user.find({'name' : 'starlee'})插入: MySQL:    INSERT INOT user (`name`, `age`) values ('starlee',25)Mongo:       db.user.insert({'name' : 'starlee', 'age' : 25}) 

MongoDB分布式部署之分片配置

发表时间:2010-07-29 07:27:35 文章分类:mongodb 阅读:43172
 这里介绍的是Mongodb的分片配置,如果想配置主主或主从对,以实现数据备份,可见mongodb分布式之数据复制。1、启动相关进程在shard server上启动mongod,使用--shardsvr 命令行参数。对于主从对,使用--pairwith命令行选项。建议一个shard  server只运行一个mongod进程。在config server上启动mongod,使用--configsvr命令行参数。如果config  server不是一台独立的服务器,为其分配一个独立的dbpath,--dbpath命令行参数。启动mongos,使用--configdb参数指明配置的数据库地址。2、shell配置分片       在启动好的mongos服务器上运行这些命令,然后通过它运行所有的配置命令。注:应该使用特定的admin数据库来存储这些命令,尽管通过mongos运行时,数据会存储在config  server上,所以在集群的生命周期内这些命令只需运行一次即可。./mongo :/admin>  dbadmin>3、增加一个分片,每个分片包括两台服务器(一对主从)或单机(Alpha 2只支持单机)。> db.runCommand( { addshard : "[:]" }&n

MongoDB数据库索引操作

发表时间:2010-07-27 05:52:22 文章分类:mongodb 阅读:20859
Mongodb数据库的索引操作很简单,只需要把作为条件的字段设置为索引即可代码    > use user      switched to db user      > show collections      system.indexes      u_info      u_setting      > db.system.indexes.find();   这是默认的索引(默认为_id为索引)    &nbs

mongo php api 查询示例

发表时间:2010-07-26 03:27:45 文章分类:mongodb 阅读:37134
使用游标得到集合中的所有文档为了得到集合中的所有文档,我们可以使用  MongoCollection::find()方法,find()方法返回一个  MongoCursor对象,可以让我们重复得到查询所匹配的的文档PHP代码    

Mongo PHP Api 之数据库连接

发表时间:2010-07-23 08:00:11 文章分类:mongodb 阅读:26578
1.假设连接数据库有验证:方式一    $Mongod = new Mongo("mongodb://search:123456@192.168.168.222:10001/Search",array("connect"=>false));        $Mongod->connect();   

mongodb查询

发表时间:2010-07-22 08:04:58 文章分类:mongodb 阅读:27060
 #查询 查询 name = "bruce" 的数据 db.users.find({ name : "bruce" });  条件操作符 $gt : > $lt : < $gte: >= $lte: = 18 的数据  db.users.find({name: {$ne: "bruce"}, age: {$gte: 18}}); 查询  creation_date > '2010-01-01' and creation_date

MongoDB基础

发表时间:2010-07-22 08:04:06 文章分类:mongodb 阅读:115885
 MongoDB的安装,是在是简单,解压就行了,纯绿色版:)打开http://www.mongodb.org/downloads,根据自己的操作系统,下载最新的合适自己的稳定版。例如解压到/usr/local/下,将目录名变更为mongodb。就安装完成。cd  /usr/local/mongodb,./bin/mongod  –help,可以大概看一下帮助。bin目录下,有十几个可执行文件,最常用的就是mongod,这个是mongodb启动脚本。现在就启动一下,./mongod  --fork --dbpath=/home2/mongodb_data --logpath=/home2/mongodb_data/mongodb.log  --logappend --port=9601,其中,–fork标示以创建子进程的方式运行,–dbpath是数据文件存储目录,目录需要实现建好,如果不设定此目录,默认会在安装目录下存储。logpath指日志存放目录,logappend标示日志以追加的方式写入。–port是mongodb端口,默认是27017  。好了,这样mongodb就启动起来了,当然,还有很多其他的参数,就看个人需要了。文章末尾,会将所有启动可选参数作为附件段落。下边,本地连接到数据库,测试一下。/usr/local/mongodb/bin/mongo  --port=9601,正常情况下,会看到成功提示,例如connecting to:  127.0.0.1:9601/test type "help&q

MongoDB 入门教程

发表时间:2010-07-21 04:39:05 文章分类:mongodb 阅读:26438
启动数据库下载 MongoDB,  解压后并启动:代码    $ bin/mongod  MongoDB 默认存储数据目录为 /data/db/  (或者 c:\data\db), 当然你也可以修改成不同目录, 只需要指定 –dbpath 参数:代码    $ bin/mongod --dbpath /path/to/my/data/dir  获取数据库连接现在我们就可以使用自带的s

MongoDB数据库的MapReduce简单操作

发表时间:2010-07-21 04:34:22 文章分类:mongodb 阅读:20752
 MongoDB也简单的实现了MapReduce的功能来提供分布式的数据查询服务,MapReduce的分布是功能主要用在Shard上  代码    db.runCommand(              { mapreduce : ,                map : ,        

MongoDB的sharding功能

发表时间:2010-07-21 04:29:01 文章分类:mongodb 阅读:25692
MongoDB的auto-sharding功能是指mongodb通过mongos自动建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上。一个mongodb集群包括一些shards(包括一些mongod进程),mongos路由进程,一个或多个config服务器Shards每一个shard包括一个或多个服务和存储数据的mongod进程(mongod是MongoDB数据的核心进程)典型的每个shard开启多个服务来提高服务的可用性。这些服务/mongod进程在shard中组成一个复制集ChunksChunk是一个来自特殊集合中的一个数据范围,(collection,minKey,maxKey)描叙一个chunk,它介于minKey和maxKey范围之间。例如chunks  的maxsize大小是100M,如果一个

MongoDB主从复制(一)

发表时间:2010-07-21 03:54:07 文章分类:mongodb 阅读:17732
MongoDB的主从复制其实很简单,就是在运行主的服务器上开启mongod进程时,加入参数--master即可,在运行从的服务器上开启mongod进程时,加入--slave 和 --source 指定主即可,这样,在主数据库更新时,数据被复制到从数据库中 (这里日志文件和访问数据时授权用户暂时不考虑) 下面我在单台服务器上开启2deamon来模拟2台服务器进行主从复制:代码    $ mkdir m_master m_slave            $mongodb/bin/mongod  --port  28018 --dbpath ~/m_master  --master  &            $mongodb/bin/mongod  --port  28019 --dbpath ~/m_slave  --slave  --source   l

MongoDB主从复制(二)

发表时间:2010-07-21 03:53:32 文章分类:mongodb 阅读:32037
 MongoDB一般情况下都可以支持主主复制,但是在大部分情况下官方不推荐使用运行的master - master的准备工作是:新建存放数据库文件的路径XML/HTML代码    $mkdir mongodata/mm_28050 mongodata/mm_28051  运行mongodb数据库,一个端口为:28050,一个为:28051XML/HTML代码    $ mongodb/bin/mongod --port 28050 --dbpath ~/mongodata/mm_28050 --master --slave --source localhost:28051 > /dev/null &             $ 
12下一页