キャッシュドライバー

a-blog cms ではページキャッシュ、テンプレートキャッシュなどの複数のキャッシュが利用できますが、さらにキャッシュする場所や方式(ドライバー)も設定できます。

キャッシュドライバー

複数のキャッシュドライバーを用意しています。

データベースドライバー

データベース(MySQL)にキャッシュを保存します。 ある程度スピードも早く、複数台構成でもキャッシュを共有して利用できます。

ファイル キャッシュドライバー

ローカルのファイルシステムでファイルとしてキャッシュを行います。
他のAPCuやRedisなどのインメモリキャッシュに比べると低速になります。

PHPファイル キャッシュドライバー

PHPファイルとしてキャッシュします。OPcacheが有効だと高速に動作します。

メモリー キャッシュドライバー

メモリキャッシュになります。共有メモリではないので、アクセスの間だけ共有されます。

APCu キャッシュドライバー

APCu 拡張モジュールを使った、高性能な共有メモリキャッシュです。共有メモリに保存されるため、アプリケーションの性能を大幅に向上させることができます。

Redis キャッシュドライバー

Redis サーバーを使った 共有メモリキャッシュです。アプリケーションの性能を大幅に向上させることができます。複数台構成でもキャッシュを共有して利用できます。

設定変更方法

a-blog cms 設置ディレクトリに、.env ファイルを用意する必要があります。最初のパッケージに、env.txt ファイルがありますので、これを「.env」ファイルにリネームしてご利用ください。

ドライバーの変更

CACHE_xxxxxxx_DRIVER の値を変更することで、各キャッシュのキャッシュドライバーを変更することができます。
変更できる値は以下のものになっております。

  • database: データベース キャッシュドライバー
  • file: ファイル キャッシュドライバー
  • php: PHPファイル キャッシュドライバー
  • memory: メモリー キャッシュドライバー
  • apcu: APCuキャッシュドライバー
  • redis: Redis キャッシュドライバー

「コンフィグキャッシュ」「ページキャッシュ」に利用できるドライバーは下記3つのドライバーのみとなります。

  • database
  • file
  • redis

APCuを選択した場合、サーバー環境によっては、PHPプロセス毎にキャッシュがされてしまい、古いキャッシュが返ってきてしまう事があります。このような環境の場合は、他のキャッシュドライバーを選択ください。 * XSERVERの「Xアクセラレータ Ver.2」以外の場合、この環境となることを確認しています。

Webサーバーを複数台構成(プロフェッショナル以上)にする場合、キャッシュドライバーは「redis」をお勧めします。複数台で1つのキャッシュを参照でき、効率がよくなるためです。「Redis」が利用できない場合は、データベースキャッシュドライバーでもキャッシュを共有できますが、「redis」のほうがキャッシュ専用でパフォーマンスも出ますので「redis」が利用できる場合は「redis」をご利用ください。

CACHE_xxxxxxx_DRIVER には複数の値を「パイプ(|)」でつなげて設定することが出来ます。複数の値を設定した場合は、右から優先して利用できるドライバーがあったら、そのキャッシュドライバーを利用します。

CACHE_TEMPLATE_DRIVER=apcu|file

この場合、テンプレートキャッシュで、APCuが利用できる環境だとAPCuキャッシュを使用して、利用できない環境だとファイルキャッシュを使用します。

デフォルト設定

# キャッシュ設定
# Supported: apcu, php, memory, file, redis, database

# テンプレートのキャッシュをするドライバーを選択します
CACHE_TEMPLATE_DRIVER=file
CACHE_TEMPLATE_NAMESPACE=template
CACHE_TEMPLATE_LIFETIME=2678400

# フィールド情報のキャッシュをするドライバーを選択します
CACHE_FIELD_DRIVER=database
CACHE_FIELD_NAMESPACE=field
CACHE_FIELD_LIFETIME=86400

# モジュールのキャッシュをするドライバーを選択します
CACHE_MODULE_DRIVER=database
CACHE_MODULE_NAMESPACE=module
CACHE_MODULE_LIFETIME=86400

# 一時キャッシュで利用するドライバーを選択します
CACHE_TEMP_DRIVER=memory
CACHE_TEMP_NAMESPACE=temp
CACHE_TEMP_LIFETIME=10800

# コンフィグのキャッシュをするドライバーを選択します
# ページキャッシュに指定できるドライバーは、file, database, redis のみとなります。
CACHE_CONFIG_DRIVER=database
CACHE_CONFIG_NAMESPACE=config
CACHE_CONFIG_LIFETIME=2678400

# ページキャッシュをするドライバーを選択します
# ページキャッシュに指定できるドライバーは、file, database, redis のみとなります。
CACHE_PAGE_DRIVER=database
CACHE_PAGE_NAMESPACE=page

# redisのコネクション設定をします
CACHE_REDIS_HOST=
CACHE_REDIS_PASSWORD=
CACHE_REDIS_PORT=6379

Redis を利用するには、Redisサーバーの情報を設定する必要があります。
また、PHPの拡張モジュールとしてRedisが入っている必要があります。

CACHE_REDIS_HOST=
CACHE_REDIS_PASSWORD=
CACHE_REDIS_PORT=6379