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:

PHP:
  1. $tt = new TokyoTyrant("localhost");
  2. $tt->put("eindeutigerSchluessel", "Wert den ich speichern will");
  3. var_dump($tt->get("eindeutigerSchluessel"));
  4. // im obigen Fall würde "Wert den ich speichern will" ausgegeben.

Verwenden von TokyoTyrantTable:

PHP:
  1. // Parameter sind host und port des tyrant servers
  2. $tt = new TokyoTyrantTable("localhost", 1979);
  3. $array= array();
  4. $array['test1'] = 'value4';
  5. $array['test2'] = 'value2';
  6. $array['test4'] = 'value4';
  7. // keinen key angeben um automatisch einen index erzeugen zu lassen:
  8. $index = $tt->put(null, $array);
  9. echo 'Index des neuen Eintrag: '.$index;
  10. echo 'Zeile mit dem index: '.$index;
  11. var_dump($tt->get($index));
  12. // verwendet man bei put einen index welcher schon besteht wird der vorhandene ueberschrieben
  13. $index = $tt->put($index , $array);

Eine TokyoTyrantTable durchsuchen:

PHP:
  1. // ein Query Objekt holen
  2. $query = $tt->getQuery();
  3. /* Eine Suchkondition hinzufuegen,
  4. finde alle Zeilen beidenen test1 = value4 ist
  5. */
  6. $query->addCond("test1", TokyoTyrant::RDBQC_STROR, "value4");
  7. var_dump($query->search());

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/