Etikettarkiv: Tokyo Cabinet

MongoDB – Test av NoSQL, del 1

Som läsare av denna blogg så vet du nog vid det här laget att jag har en stor kärlek till det som kallas för NoSQL. Dvs systemlösningar som inte enbart innefattar SQL.

Tre av de stora kandidaterna till att snabba upp MySQL eller byta ut MySQL helt heter Redis, CouchDB samt MongoDB men vilken ska man välja? Som du kanske förstår så finns det inget bra svar på detta men jag tänkte här nedan försöka ge en liten inblick hur det är att installera och använda respektive dokumentcentrerad (icke SQL) databas.

Andra NoSQL-system som är värda att nämna är Neo4j, Tokyo Cabinet, Memcache samt Cassandra.

Bakgrund MongoDB

Används av sajter såsom bit.ly och foursquare. Utvecklat i C++ och överbryggar RDBMS och nyckel-värde lagring.

Installation MongoDB

Installationen gick mycket smidigt på mitt Ubuntu 10.10 system med hjälp av apt:

$ sudo apt-get install mongodb-server

Då installeras MongoDB, xulrunner samt så läggs en användare vid namn mongodb upp. Mongodb lyssnar även på två TCP-portar på 127.0.0.1

För PHP-stöd till MongoDB så kan pecl-porten användas och installeras på följande sätt:

$ sudo pecl install mongo

Om du får ett felmeddelande i stil med:

sh: phpize: not found
ERROR: `phpize’ failed

Så måste Ubuntu-paketet php5-dev installeras där phpize ingår. För att sedan få php att ladda in mongo-modulen så kan följande kommando användas:

$ sudo sh -c ”echo extension=mongo.so > /etc/php5/conf.d/mongo.ini”

För att sedan använda MongDB så kan exempelvis följande PHP-kod användas för test:


<?php

// connect

$m = new Mongo();

// select a database

$db = $m->comedy;

$collection = $db->cartoons;

// add an element

$obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );

$collection->insert($obj);

// find everything in the collection

$cursor = $collection->find();

// iterate through the results

foreach ($cursor as $obj) {

echo $obj["title"] . "\n";

}

// disconnect

$m->close();

?>

För att sedan verifiera testa:

$ php mongodb.php

Så bör följande visas:
Calvin and Hobbes
Andra inlägg i denna serie kommer snart.