2011年6月8日水曜日

TokyoTyrantことはじめ

色々と紆余曲折があって、TokyoTyrantを試してみることになった。
もともと、rubyな人だったので、まずはrubyで試してみる。

インストール

まずはインストール、適当に用意してあったVmWare上のCentOsに放り込む
Cabinet,Tyrant,TyrantRubyをイントール。必要なライブラリが足りなかったので、下記で充当。
yum -y install zlib-devel
yum -y install bzip*
それぞれのライブラリは
configure
make
make install
でOKだった。簡単。簡単。
rubyバインディングはinstall.rbがあったので、そいつを叩けば終了。
これで、とりあえず準備は整った。
今回は、2次元のデータ構造(Grid形式のもの)を放り込みたかったので、
テーブルのタイプは、tchではなく、tctを選択することにする。
ttservctlをエディタで開いて、拡張子を変更する。(tch -> tct)
dbname="$basedir/casket.tct#bnum=1000000"
そしてサーバ再起動
 ttservctl stop
 ttservctl start
最もシンプルなコードでテスト。
 require 'tokyotyrant'
 include TokyoTyrant
 #このRDBTBLを利用する為に、拡張子をかえました。
 db = RDBTBL::new
 if !db.open('localhost',1978)
   p 'not connected'
 end
 #putの反対はout,outするとメモリ上からさようなら。
 if !db.put("row1",{"name" => "cat", "age" => "18"})
   p 'put error'
 end
 db.put("row2",{"name" => "dog", "age" => "19"})
 db.put("row3", {"name" => "lion","age" => "20"})
 qry = RDBQRY::new(db)
 #sortしてみる。
 qry.setorder("age",RDBQRY::QONUMDESC)
 #MYSQLのlimitと同じ、結果セットから1件だけ下さい。
 qry.setlimit(1)
 p qry.search
 p qry.searchcount
 if !db.close
  p 'not disconnected'
 end
結果は、
 ["row3"]
 1
よしよし、期待通り。次はJavaだな。

0 件のコメント: