Tokyo Cabinet。最近興味が沸いたので少し触ってみることに。ほんのお触り程度、で。
データベースマネージャ Tokyo Cabinet
エントリタイトル、わざと『東京キャビネット』と書こうとしたのだけど、同名の企業が存在するので素直に書いた。しかも地元の企業だ。こっちの方が驚いた。
■インストール
OSは手元のFedoraとCentOS。yumで入ります。
# yum install tokyocabinet
Fedora12はインストールした記憶はないのだけど既に入っていた(?)。
お触り程度なのでCLIでtchmgrコマンドを。’h'はハッシュ。
tchmgrコマンドに-hパラメータを与えるとヘルプ出力。
■tchmgr version
バージョン出力。2010年02月03日現在Officialでは1.4.42が最新だと言っているので少し古い感じ。
$ tchmgr versionTokyo Cabinet version 1.4.33 (824:1.0) for LinuxCopyright (C) 2006-2009 Mikio Hirabayashi
■tchmgr create
とりあえず、何かデータベースファイルを作ってみる。パラメータにファイル名を与える。
500kb程度のファイルが出来上がる。
$ tchmgr create coffee.tch
■tchmgr inform
さっそく生成したデータベースファイルの情報を出力してみる。
パラメータには同じくデータベースファイル名を。
$ tchmgr inform coffee.tchpath: coffee.tchdatabase type: hashadditional flags:bucket number: 131071alignment: 16free block pool: 1024inode number: 2326537modified time: 2010-02-03T00:07:31+09:00options:record number: 0file size: 528704
■tchmgr put
レコードを追加してみよう。パラメータは、データベースファイル名、Key、Valueの順。
$ tchmgr put coffee.tch espresso エスプレッソ
■tchmgr get
まだ1レコードしか追加していないけれど、データを取り出してみる。
$ tchmgr get coffee.tch espressoエスプレッソ
■tchmgr list
更にレコードを追加してリスト表示させてみる。
$ tchmgr put coffee.tch caffellatte カフェラテ$ tchmgr put coffee.tch cappuccino カプチーノ$ tchmgr list coffee.tchespressocaffellattecappuccino
ここで再びデータベースの情報を出力。record numberが3となっている。
$ tchmgr inform coffee.tchpath: coffee.tchdatabase type: hashadditional flags:bucket number: 131071alignment: 16free block pool: 1024inode number: 2326537modified time: 2010-02-03T00:26:54+09:00options:record number: 3file size: 528848
■tchmgr out
outによりレコードを削除する。削除するレコードのKeyを与える。
$ tchmgr out coffee.tch caffellatte
リスト表示してみる。
$tchmgr list coffee.tchespressocappuccino
削除したレコードをgetしてみる。
$ tchmgr get coffee.tch caffellattetchmgr: coffee.tch: 22: no record found
当然エラーとなる。
■tchmgr optimize
optimizeは最適化だが、これまでのcoffee.tchに行っても効果は何もない。
$ tchmgr optimize coffee.tch
■tchmgr importtsv
最後にimporttsv。tchmgrはあらかじめ用意したタブ区切りのファイルを読み込ませることで、データベースファイルを生成することができる。また、既存のデータベースファイルにレコードを追加することも可能だ。
パラメータは、データベースファイル名、インポートするファイル名の順。
以下内容のファイル(numero.txt)を用意した。
uno ウーノdue ドゥーエtre トレquattro クアットロcinque チンクェsei セーイsette セッテotto オットnove ノーヴェdieci ディエーチ
$ tchmgr importtsv numero.tch numero.txt(00000010)
追加されたレコード数が出力される。
リスト表示してみよう。
$ tchmgr list numero.tchunoduetrequattrocinqueseisetteottonovedieci
とりあえずここまで。
B+木などはまた別の