■インストール
yumリポジトリの追加
以下のコマンドでリポジトリを追加する。
vi /etc/yum.repos.d/mongo.repo
以下のようにファイルの中身を記述する。
[10gen] name=10gen Repository baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/i386/ gpgcheck=0
保存したら以下のコマンドを実行する。
yum install mongo-stable*
起動
以下のコマンドで起動してみる。
/etc/init.d/mongod start
以下のコマンドで起動したか確認する。
lsof -i:27017
以下のコマンドで自動起動を設定する。
chkconfig mongod on chkconfig mongod --list
参考
amazon linuxにインストールする
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz tar xvzf mongodb-linux-x86_64-2.0.2.tgz mv mongodb-linux-x86_64-2.0.2 /var/lib/mongodb mkdir /mnt/db /var/lib/mongodb/bin/mongod --fork --logpath ~/mongod.log --dbpath /mnt/db/
■PHPから扱う準備
以下のコマンドでpecl_mongoをインストールする。
pecl clear-cache pecl install mongo
以下のコマンドで設定ファイルを生成する。
cp /etc/php.d/curl.ini /etc/php.d/mongo.ini vi /etc/php.d/mongo.ini
設定ファイルは以下のような記述だ。
; Enable mongo extension module extension=mongo.so
設定が終わったらhttpdをreloadする。
/etc/init.d/httpd reload
参考
PHP & MongoDB Sitting in a Tree: Part 1
英語だが非常に参考になるドキュメントだ。
■ベンチマーク
以下のコードを使用してベンチマークしてみた。
$dbh = new Mongo(); $dbh = $dbh->testdb; $col = $dbh->bench; $start = microtime(true); for($i = 0; $i < 1000; $i++){ $col->insert( array( 'key' => "key{$i}", 'value' => "abcdefghijklmnopqrstuvwxyz" ), true ); } $end = microtime(true); print($end - $start);0.66766786575317 $dbh->close();
但し、2回目以降は0.2秒以下になる。
データを取り出す
本当にデータが挿入されているのか不安になったので、以下のコードを使用してデータを覗いてみた。
$res = $col->find(); $s = 0; foreach($res as $doc){ print("<pre>{$s}"); var_dump($doc); print('</pre>'); $s++; } $dbh->close();
ベンチマークをしておいて言うのもオカシイが、データストアにおいて全く同じ条件というものは再現できないので単純に比較してはならない。用途に応じた選択が必要である。
amazon Linuxにインストールする
amazon Linuxにインストールする場合は以下のようにする。
curl -O http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz tar xzf mongodb-linux-x86_64-2.0.2.tgz mv mongodb-linux-x86_64-2.0.2 /var/lib/mongodb cd /var/lib/mongodb/bin mkdir /mnt/db ./mongod --fork --logpath /var/log/mongod.log --dbpath /mnt/db/