Doctrineのキャッシュの利用設定について解説します。
Edit me
キャッシュタイプ
キャッシュタイプとしては以下を設定できます。
キャッシュタイプ | 概要 |
---|---|
metadata_cache | Doctrine のメタデータ(Entity Yaml ファイルの情報等)をキャッシュします。 |
query_cache | ORM から SQL の変換結果をキャッシュします。 |
result_cache | DQL の検索結果をキャッシュします。 |
hydration_cache | 連想配列から、 Entity への変換結果をキャッシュします。 |
result_cache の追加設定
後述のドライバの設定のほか、以下の設定を利用可能です(3.0.12以降)
- lifetime
- キャッシュの有効期限(秒)
- デフォルト値は3600
- clear_cache
- キャッシュされたエンティティが更新される際に、キャッシュを削除するかどうか
- デフォルト値はtrue
- falseの場合、管理画面で編集を行った際にもキャッシュの削除を行いません
- キャッシュの削除タイミングをコントロールしたい場合に利用してください
キャッシュドライバ
キャッシュドライバとしては以下を設定できます。
array
デフォルトの設定です。リクエストごとに PHP array でキャッシュを生成します。開発環境向け。
- 設定例
<cachename>_cache:
driver: array
path:
host:
port:
password:
filesystem
キャッシュファイルをファイルシステムに保存します。
SSD など、高速なストレージを使用している場合に効果を期待できます。
path:
パラメータでキャッシュの保存先を指定します。
- 設定例
<cachename>_cache:
driver: filesystem
path: /path/to/ec-cube/app/cache/doctrine/<cachename>
host:
port:
password:
apc
APC User Cache を利用して、キャッシュをメモリ上に保持します。
予め apcu をインストールしておく必要があります。
pecl install apcu
- 設定例
<cachename>_cache:
driver: apc
path:
host:
port:
password:
xcache
xCache を利用して、キャッシュをメモリ上に保持します。
予め xCache をインストールしておく必要があります。
## for ubuntu
sudo apt-get install php5-xcache
## for centos7
sudo rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
sudo yum --enablerepo=epel install php-xcache
## for macos x
brew install php56-xcache
- 設定例
<cachename>_cache:
driver: xcache
path:
host:
port:
password:
memcached
memcached にキャッシュを保存します。
libmemcached を必要とします。 PECL memcached を入れておく必要があります。
host:
及び port:
で memcached の接続先を指定します。
## for ubuntu
sudo apt-get install memcached
## for centos7
sudo yum install memcached
## for macos x
brew install memcached
pecl install memcached
- 設定例
<cachename>_cache:
driver: memcached
path:
host: localhost
port: 11211
password:
memcache
memcached にキャッシュを保持します。 driver: memcached
の場合と異なり、 libmemcached を必要としません。
PECL memcache を入れておく必要があります。
host:
及び port:
で memcached の接続先を指定します。
- 設定例
<cachename>_cache:
driver: memcache
path:
host: localhost
port: 11211
password:
redis
redis にキャッシュを保持します。
予め PECL redis をインストールしておく必要があります。
host:
及び port:
で redis-server の接続先を指定します。
- 設定例
pecl install redis
<cachename>_cache:
driver: redis
path:
host: localhost
port: 6379
password: