Tokyo Tyrant PHP, ein Key Value Store
Tokyo Tyrant ist eine Key Value Datenbank.
Im Gegensatz zu den sonst bekannten und verwendeten Datenbanken werden hier tatsächlich nur Werte zu eindeutigen Schlüsseln gespeichert.
Zudem gibt es noch die Möglichkeit zu eindeutigen Schlüsseln Werte Paare zu speichern. (TokyoTyrantTable)
Mehr Details: http://www.igvita.com/2009/02/13/tokyo-cabinet-beyond-key-value-store/
Beispiele
Im Code sieht das so aus:
Key => Value speichern:
-
$tt = new TokyoTyrant("localhost");
-
$tt->put("eindeutigerSchluessel", "Wert den ich speichern will");
-
// im obigen Fall würde "Wert den ich speichern will" ausgegeben.
Verwenden von TokyoTyrantTable:
-
// Parameter sind host und port des tyrant servers
-
$tt = new TokyoTyrantTable("localhost", 1979);
-
$array['test1'] = 'value4';
-
$array['test2'] = 'value2';
-
$array['test4'] = 'value4';
-
// keinen key angeben um automatisch einen index erzeugen zu lassen:
-
$index = $tt->put(null, $array);
-
// verwendet man bei put einen index welcher schon besteht wird der vorhandene ueberschrieben
-
$index = $tt->put($index , $array);
Eine TokyoTyrantTable durchsuchen:
-
// ein Query Objekt holen
-
$query = $tt->getQuery();
-
/* Eine Suchkondition hinzufuegen,
-
finde alle Zeilen beidenen test1 = value4 ist
-
*/
-
$query->addCond("test1", TokyoTyrant::RDBQC_STROR, "value4");
Anstatt die PHP Extension zu verwenden kann auch komplett über REST auf die Datenbank zugegriffen werden:
curl -X PUT -d 'value' 'http://localhost:1978/key'
curl 'http://localhost:1978/key'
// gibt value zurück
Die Datenbank kann also aus jeder Sprache verwendet werden welche http versteht.
Weitere Dokumentationen finden sich unter: http://de2.php.net/tokyo_tyrant
Installation
Tokyo Cabinet Paket herunterladen, entpacken,
configure
make
make install
aufrufen.
Tokyo Tyrant Paket herunterladen, entpacken,
configure
make
make install
aufrufen.
Zusätzlich musste ich noch das paket libbz2-dev (aptitude install libbz2-dev) installieren.
TokoyTyrant im Tabellen Modus Starten:
ttserver -port 1978 /tmp/temp_table.tct
TokyoTyrant im Key Value Modus starten:
ttserver -port 1978
Die Pecl PHP Extension kann mit
pecl install tokyo_tyrant
installiert werden anschliessen muss nur noch die ausgegebene Zeile:
extension=tokyo_tyrant.so
zur php.ini hinzugefügt und der Apache neugestartet werden.
Distributed TokyoTyrant
LightCloud - http://opensource.plurk.com/LightCloud/
Quellen weitere Informationen
http://1978th.net/tokyotyrant/spex.html#installation
http://petewarden.typepad.com/searchbrowser/2009/03/why-i-abandoned-tokyo-tyrant.html
http://petewarden.typepad.com/searchbrowser/2009/03/an-example-of-tokyo-tyrant-in-php.html
http://de2.php.net/manual/en/book.tokyo-tyrant.php
http://pecl.php.net/package/tokyo_tyrant/