@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Memcached を勉強しなおしている

追記

http://mt.endeworks.jp/d-6/2008/09/cachememcachedfast-libmemcache.html というツッコミが。 Cache::Memached::Fast と libmemcached について 100% 間違ったことを書いていたので修正。ありがとうございました。

  • memcached-tool の存在は知っているけど結果の読み方がわからない
  • libmemcached とか「なんか memcached 関連の新しくていいものらしい」ってことしか知らない
  • ketama? あーケタマねアレはいいよね、ところで食べられるんだっけ?

こういうのはよくないので勉強しなおしている。

まずはひたすらぐぐって mixi の中のひとたちが書いた記事などを読みあさる。 -f オプションの factor が、効率良くメモリを使ってキャッシュさせる鍵になりそうだなという気がした。

ものすごく基本的なところがわかってなかった。 libmemcached は libmemcache の新しいやつで、どちらも memcached サーバとは無関係の、クライアントライブラリ。 memcached に必要なのは libevent だけ。

libketama は last.fm の中の人?が開発した、これもクライアントライブラリで、 Consistent Hashing を実装している。キャッシュサーバの数が増えたり減ったりしてもヒット率をなるべく下げないような賢いクライアントになりますよ、ということらしい。で、 libmemcached は libketama と同じ Consistent Hashing を実現した別の実装で、 Cache::Memcached::Fast が libmemcached を利用した Perl のクライアントライブラリ 全然違うらしいです。ややこしい。

つまり libmemcached をインストールしてから Cache::Memcached::Fast をインストールしてそれをアプリケーションから利用すれば賢いクライアントになると。 libmemcached はそれ以外にもいろいろ良くなってるぶぶんが多いので使うといいよ、ということのようだ。 Cache::Memcached::libmemcached との違いについても調べないといけないな。