APC (Alternative PHP Cache) を使ってみた
APC (Alternative PHP Cache) は PHP の実行コードをキャッシュするモジュール。追加するだけでパフォーマンスをアップできる。また、実行コードだけでなく、任意のオブジェクトのキャッシュもできる(最近知った)。
http://php.net/manual/ja/book.apc.php
インストール
# aptitude install php-apc php5-gd
設定
/etc/php5/conf.d/apc.ini
パラメータ | 内容 | デフォルト値 |
---|---|---|
apc.shm_size | 共有メモリ容量(MB) | 30 |
apc.numfiles_hint | キャッシュ対象のファイル総数 | 1000 |
apc.filters | キャッシュ対象外のルール(正規表現) |
管理画面
管理画面:
# gzip -d /usr/share/doc/php-apc/apc.php.gz -c > /var/www/apc.php
<?php defaults('ADMIN_USERNAME','apc'); defaults('ADMIN_PASSWORD','password');
データキャッシュ
関数名 | 機能 |
---|---|
apc_fetch() | データ取得 |
apc_store() | データセット |
一点注意点が: http://www.php.net/manual/ja/function.apc-store.php#70822
オブジェクトの参照は1階層目のみしか保存してくれないとのこと。
たとえば、配列を apc_fetch したとき、キーは取得できても値は null が入っている。
解決法としては、オブジェクトに対して serialize(), unserialize() を使ってやること。
他に ArrayObject を使うとよいとも書かれてあるが、試していない。