YAPC::Asia Hachioji 2016 mid in Shinagawa 2016-07-03 Yusuke Wada a.k.a. yusukebe
YAPC::Asia Hachioji 2016 mid in Shinagawa 2016-07-03 Yusuke Wada a.k.a. yusukebe
概要 CakePHPでSQLの実行結果をキャッシュしておいて、更新されるまでは再検索しないような動きをさせたくなったので少し調べてみたけど、正解がわからないまま強く当たって流れで押し出された感じのメモ。 下記ページを参考にした。 http://book.cakephp.org/2.0/en/core-libraries/caching.html キャッシュの種類 参考URLによると、キャッシュには以下のもの等が用意されているそうな。 FileCache(ファイルにキャッシュする。遅い) ApcCache(Alternative PHP Cacheを使う) Wincache(Wincacheを使う) MemcacheEngine(Memcacheを使う) 今回の用途的にはApcCacheを使っておけば良いだろうか。速くてアトミックなRead/Writeもできる子らしい。 入ってない場合は入れ
CakePHPにはキャッシュを行う関数cache()があるのですが、1.2.2のソースを見るとdeprectatedになってました。 [cake/basics.php] <?php /** * Reads/writes temporary data to cache files or session. * * @param string $path File path within /tmp to save the file. * @param mixed $data The data to save to the temporary file. * @param mixed $expires A valid strtotime string when the data expires. * @param string $target The target of the cached da
Cakeでキャッシュ周りの調査をしていたら、モデルのメソッドの実行結果をキャッシュさせるbehaviorがあるのを見つけました。 CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う これが相当いい感じなので、その利点や導入方法についてまとめておきたいと思います。 コントローラのスリム化 MVCモデルでキャッシュを利用しようという話になると、大抵Controllerでキャッシュヒットの有無を確認して、ヒットしない場合キャッシュをリセットする、というロジックがまず頭に浮かぶと思います。 if (($posts = Cache::read('posts')) === false) { $posts = $this->Post->find('all'); Cache::write('posts', $posts); } ただ、コントローラで毎回このようなキャッシュヒットを確認
一人プロジェクトでSymfony2使ってたらこれから部署でもSymfony2使っていくような流れになってきたので自分用にメモを残していってみる。 とりあえずまずは高速化に関連する話題。 APCを有効化する Symfony2使うならAPCはほぼ必須。 ApcUniversalClassLoaderに置き換えてみる デフォルトではUniversalClassLoaderが有効になっているが、これはfile_existsを何度も呼ぶため遅い。 クラスの位置をAPCにキャッシュするApcUniversalClassLoaderが同梱されているため、こちらに入れ替える。 ただし、名前空間をいじったりしたときにキャッシュをクリアしないと問題が起きたりするので、開発中はUniversalClassLoaderでいいかも。 app/autoload.phpの上部を以下の様に編集。 <?php //re
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く