フリーキーズ | 独学プログラミング

Tokyo Cabinetとは

最終更新日

Tokyo Cabinetは、データベースを管理するためのルーチンを集めたオープンソースのライブラリです。平林幹雄氏によってC言語で開発された。Tokyo CabinetはQDBM(Quick Database Manager)の後継でその効率と性能で知られています。

Tokyo Cabinetはキーバリューストアであり、データをキーと値のペアとして保存されます。これは多くのプログラミング言語における辞書やマップの仕組みに似ており、対応するキーがわかっているときに効率的に値を取り出すことができます。

Tokyo Cabinetの使用例

ここではその基本的な動作の例を紹介します。例えば、Tokyo Cabinetのデータベースに書籍に関する情報を格納したいとします。本のISBNがキーで、値は本のタイトル、著者、出版日を含む文字列とします。

import tc

# 新しいデータベースの作成
hdb = tc.HDB()

# データベースを開く
hdb.open("books.tch", tc.HDBOWRITER | tc.HDBOCREAT)

# データの保存
hdb.put("978-4003101117", "こころ, 夏目漱石, 1989")
hdb.put("978-4101050089", "金閣寺, 三島由紀夫, 2003")

# データベースを閉じる
hdb.close()

ある本のデータを取り出したいときはその本のISBNを使えばいいことになります。

hdb.open("books.tch", tc.HDBOREADER)

value = hdb.get("978-4003101117")
print(value)  # "こころ, 夏目漱石, 1989"を出力

hdb.close()

Tokyo Cabinetの特徴

Tokyo CabinetライブラリはB+木やハッシュデータベースの実装、オンディスクやインメモリストレージのサポートのようにデータベースを効率的に管理するための様々な機能も含んでいます。

しかし、Tokyo Cabinetとその後継であるTokyo Tyrant (Tokyo Cabinetへのネットワークインターフェイスを提供)は、Kyoto CabinetやKyoto Tycoonのような新しいソリューションにほとんど取って代わられました。さらにTokyo Cabinetはかなり低レベルのツールであり、SQLクエリのサポートやマルチテーブルリレーションのような、より複雑なデータベースの機能の多くを欠いています。