unoh.github.com

PHPからTokyoxxxを使おうとした時の話

Thu Sep 18 02:28:19 -0700 2008

モテ系の方と服を買いにいったKeitaです。

やっとこれで、かっこよくなって、彼女できるかと思っていたのですが、残念ながら服を買っただけでは彼女はできそうにはないです。秋服なので涼しくなったら着てモテモテになりたいと思います。

さて、平林さんが開発されているTokyoCabinetTokyoTyrantTokyoDystopiaは個人的にでたまに暇を見つけて仕事では使いもしないのに検証作業をしています。

PHPから使う方法を社内勉強会で簡単に解説をしたのでそれを、それをテキスト起こしておいておきます。


まず簡単に各アプリケーションについて解説しますと。

Tokyo Cabinet
  • ハッシュ型のデータベース
  • というよりデータベースマネージャ
  • インターフェースはCのAPI
  • 高速
  • TokyoDystopia、TokyoTyrantのストレージエンジン
Tokyo Tyrant
  • TokyoCabinetのネットワークインターフェース
  • memcached互換のインターフェース
  • オリジナルのネットワークインターフェース(細かくやろうとするとこちらを使うことになる)
Tokyo Dystopia
  • TokyoCabinetをストレージエンジンとした前文検索エンジン
  • インターフェースはCのAPI
といった感じになります。
おそらく、Webアプリケーションからは、TokyoTyrantを直接使ったり、TokyoDystpiaにネットワークインターフェースを一枚かぶせて使うことになると思います。

大まかに図にしてみると以下のようになります。

TOkyo.jpg

それぞれPHPから利用するためには以下のようなモジュールを使うことになります。
Tokyo Cabinet
TokyoCabinetをPHPから直接使うには、id:rskyさんのモジュールが利用できます。
Tokyo Tyrant
TokyoTyrantは基本的にPHPからはmemcache互換のインターフェースを使うと簡単に利用できますが、PHPのmemcacheの関数はいくつか不足している機能があるので、個人的には、拙作のTokyoTyrantのネイティブなネットワークAPIのインターフェースをしゃべるpure phpライブラリを使うことにしています。

gree labsさんで公開されてるmemcachedのインターフェースだとまた事情はかわってくるかもしれませんが、さすがに出たてでまだまったく検証できていません。
Tokyo Dystopia
TokyoDystopiaを使う場合はgree labsさんで公開されているライブラリを利用することになります。

そんなわけで、ほとんどのモジュールがPHPから使えることがわかっていただけたかと思います。もちろん、それぞれ要検証ですが、この記事が何かの折、誰かの役に立てば幸いです。