Hatena::Grouphimotech

HimoTech::rAdio このページをアンテナに追加 RSSフィード

 | 

2013,1,21

CakePHPとmemcached

|  CakePHPとmemcached - HimoTech::rAdio を含むブックマーク はてなブックマーク -  CakePHPとmemcached - HimoTech::rAdio  CakePHPとmemcached - HimoTech::rAdio のブックマークコメント

CakePHPを触っている。

memcachedまわりの機能について、以下のようなことがしたいんだけど、できるだけcoreに手を入れるのは避けたい。

  1. PECL::memcachedの方を使いたい。
  2. MemcacheEngineのデフォルト設定を上書きする方法を知りたい。

あるいは、公式の意向を知りたいと思った。

1. PECL::memcacheだけではなく、より高パフォーマンスなPECL::memcachedを使いたい。

ちょうど以下のようなやりとりがあった。

#3511 Memcached instead of Memcache - CakePHP - cakephp
http://cakephp.lighthouseapp.com/projects/42648/tickets/3511-memcached-instead-of-memcache

これによると、CakePHP 2.4のマイルストーンには入れられたらしい。で、Memcacheの方は2.4で非推奨にして、3.0では非対応とする、とのこと。

なるほど、とりあえずはtrunkを観察するか。

余談

古い比較結果にあるバイナリプロトコル対応の有無については、PECL::memcacheも、2007-11-26に出たバージョン3.0.0からは対応しているので、現在はバイナリプロトコル対応についての違いはなくなっている。


2. デフォルト127.0.0.1を設定に追加してくれているけれど、これを自分の設定だけにしたい。

  • サーバは読まない、あるいは複数サーバで同じ設定でクラスタ利用したい。
    • たかだか設定項目に、「そのIPが自分のものかどうか」という処理を入れたくない。

trunkではデフォルト設定の挿入方法が変更されているみたいだけど、それでもやはり標準で自サーバを追加してることには変わりがない…。

MemcacheEngine.phpを書き換えればいいんだけど、できればそれは避けたいな、と。

じゃあインフラ側でProxyするには…

あと、それならいっそインフラ側で対応しようかとも考えたんだけど、memcachedクラスタリングしてProxyできるツール、といいうのはどういうのがあるのか分からない。

HAProxyで単純に振るだけじゃあ、ただの分散になってしまう(?)ので、PHPのMemcache::addServer()みたいに、適切にまとめてくれる機能を持ったものでないといけないように思うんだけど、どんなのがあるのだろうか…。

こんな情報があった。
Twemproxy - MemCachedとRedis用のプロキシ
http://www.infoq.com/jp/news/2012/12/twemproxy
AWS ElastiCache と twemproxyを使ってみた - まめ畑
http://d.conma.me/entry/20121227/1356596553
suz-lab - blog: TwemproxyからElastiCacheに分散(同じキーは同じElastiCacheへ)してみる
http://blog.suz-lab.com/2012/12/twemproxyelasticacheelasticache.html

おお、まさにこれだ。設定ファイルもHAProxyっぽくて分かりやすい。

データ分散に対応したMemcached Porxyですか、求めていたのはこれだ。

さっそく実証に入ろう。

トラックバック - http://himotech.g.hatena.ne.jp/rAdio/20130121
 |