キャッシュの用途の問題で、memcachedではないキャッシュを使おうと思って色々調べたのだけど、やっぱり管理面の容易さを考えてTokyoTyrantかなぁってことで、試してみた。
Pecl::Memcached使ったら嵌った。
TokyoTyrantはmemcachedのインターフェイスも採用しているので、クライアントがそのまま流用できる。小さなデータで試したところ問題なく動いたので、そのまま本番データを流し込んでみたらばどうも上手くデータが返ってこない。なぜだ。
色々調べてみたところ、どうやら、クライアントとしてPecl::Memcachedを使っていたのが良くないらしい。Pecl::Memcachedはデフォルトで一定サイズ以上(デフォルトでは100バイト以上)のデータを圧縮してくれるのだけど、どうも取り出すときに解凍してくれない。圧縮されたまま。memcachedとして使えば問題ないので、互換インターフェイスの問題なんだろう。そーなのかー。
で、結局、NET_TokyoTyrantを使うことにした。
圧縮の設定を切っちゃうとか、Pecl::Memcacheを使うとか、あれこれやっても良かったのだけど、要するに互換インターフェイスよりネイティヴの方を使った方が良ってことじゃね?と思ったので、PEARのNET_TokyoTyrantをインストールしてみた。
Net_TokyoTyrantとは?
PurePHPで書かれた、TokyoTyrantのネイティブなインターフェースを叩くライブラリです。
memcache互換のインターフェースなどとは違い、TokyoTyrantのLUA拡張などTokyoTyrant本来の機能をほぼすべて使えるというのが特徴で
続きを読む