@blog.justoneplanet.info

日々勉強

CentOSにMongoDBをインストールする

■インストール

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

参考

CentOS and Fedora Packages

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/

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment