タグ

ブックマーク / blog.katsuma.tv (3)

  • blog.katsuma.tv

    Cakeでキャッシュ周りの調査をしていたら、モデルのメソッドの実行結果をキャッシュさせるbehaviorがあるのを見つけました。 CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う これが相当いい感じなので、その利点や導入方法についてまとめておきたいと思います。 コントローラのスリム化 MVCモデルでキャッシュを利用しようという話になると、大抵Controllerでキャッシュヒットの有無を確認して、ヒットしない場合キャッシュをリセットする、というロジックがまず頭に浮かぶと思います。 if (($posts = Cache::read('posts')) === false) { $posts = $this->Post->find('all'); Cache::write('posts', $posts); } ただ、コントローラで毎回このようなキャッシュヒットを確認

  • blog.katsuma.tv

    greeさんで開催されたKey Value Store勉強会に行ってきました。 時間にして4時間超え、内容も国内のKey-Value Storeなソフトウェアの最前線の話ばかりで相当なボリューム。以下、メモってたのを残しておきたいと思います。(誤字、脱字、内容に誤りを含むものなどありましたらお伝えください)また、発表者の方やプロダクトについて、ざっくり調べてURL見つけられたものについてはリンク張っています。 森さん / 末永さん   groonga Sennaの後継エンジン 融通が効かないのがSennaのデメリット スコア算出式のカスタマイズなど Sennaの転置索引 索引の構成部品を自由に組み合わせて使える APIもいろいろ QL DB Low Level memcached互換のkey-value store バイナリのみ対応 計測 クライアント memstorm-0.6.8 mem

  • blog.katsuma.tv

    CakePHPも1.2になって、findAllが非推奨になってfind(‘All’)に置き換わったように、findHoge系なメソッドは全部findに集約して、第一引数でそのselectタイプを指定するように仕様が変更になりました。最初はこの流れはちょっと面倒くさいなぁとも思ったのですが、実際は自分の都合のいいようなタイプをどんどん追加しやすくなっているので、この仕掛けはうまく使えばすごく便利。 たとえば、タイトルのようなもの。あるUserテーブルの中からランダムに50人分のレコードを取り出すfind(‘random’)とか実装したいときはこんな感じ。 <?php class User extends AppModel { var $name = 'User'; function find($type, $queryData = array()){ switch ($type) { cas

  • 1