バックエンドには、標準と拡張の 2 種類があります。 もちろん、拡張バックエンドのほうがより高機能となります。
この (拡張) バックエンドは、キャッシュレコードを (指定したディレクトリの) ファイルに保存します。
使用可能なオプションは次のとおりです。
表 5.6. File バックエンドのオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
cache_dir |
string |
'/tmp/' |
キャッシュファイルを書き込むディレクトリ。 |
file_locking |
boolean |
true |
ファイルロックを有効/無効にします。 不慮の事故でキャッシュが破壊されることを防げますが、 マルチスレッドなウェブサーバ環境や NFS ファイルシステム上では役に立ちません。 |
read_control |
boolean |
true |
読み込み制御を有効/無効にします。有効にすると キャッシュファイルに制御キーが埋め込まれます。 キャッシュの読み込み後、計算した結果とキャッシュのキーを比較します。 |
read_control_type |
string |
'crc32' |
読み込み制御の方式 (読み込み制御が有効な場合にのみ使用します)。 使用可能な値は 'md5' (一番安全だが、最も遅い)、 'crc32' (安全性には劣るが、より高速。悪くない選択肢です)、 'adler32' (新たな選択肢。crc32 より高速です)、 'strlen' (最も高速。長さのみをチェックします) のいずれかです。 |
hashed_directory_level |
int |
0 |
ディレクトリ構造のレベルを指定します。0 は "ディレクトリ階層を作らない"、 1 は "一段階のサブディレクトリを作る"、2 は "二段階の……" を意味します。 何千ものキャッシュファイルを使用する場合にのみ、 このオプションによる高速化を実感できるでしょう。 適切な設定値を決めるには、実際にベンチマークを取得するしかありません。 たいていの場合は 1 または 2 でよいでしょう。 |
hashed_directory_umask |
int |
0700 |
ディレクトリ構造の umask を指定します。 |
file_name_prefix |
string |
'zend_cache' |
キャッシュファイルのプレフィックスを設定します。 このオプションを設定する際には十分注意しましょう。 あまりにもありふれた値をシステムのキャッシュディレクトリ (/tmp など) で使用すると、 キャッシュの削除の際に余計なものまで削除されてしまうはめになります。 |
cache_file_umask |
int |
0700 |
キャッシュファイルの umask を設定します。 |
metatadatas_array_max_size |
int |
100 |
メタデータ配列の内部最大サイズを設定します (よくわからない場合はこの値を変更してはいけません)。 |
この (拡張) バックエンドは、キャッシュレコードを SQLite データベースに保存します。
使用可能なオプションは次のとおりです。
表 5.7. Sqlite バックエンドのオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
cache_db_complete_path (必須) |
string |
null |
SQLite データベースへの (ファイル名も含めた) フルパス。 |
automatic_vacuum_factor |
int |
10 |
自動バキューム処理の設定を行います。 自動バキューム処理とは、clean() や delete() がコールされた際に自動的にデータベースの断片化解消を行う (そしてサイズを縮小する) ことです。 0 を指定すると、自動バキュームを行いません。 1 を指定すると (delete() や clean() がコールされると) そのたびにバキュームを行います。 x (1 より大きな整数) を指定すると、 clean() や delete() が x 回コールされるたびに 一回の頻度でランダムに自動バキュームを行います。 |
この (拡張) バックエンドは、キャッシュレコードを memcached サーバに保存します。 memcached は、 高性能な分散メモリオブジェクトキャッシュシステムです。このバックエンドを使用するには、 memcached デーモンおよび memcache PECL 拡張モジュール が必要です。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。 また、引数 "doNotTestCacheValidity=true" もサポートされていません。
使用可能なオプションは次のとおりです。
表 5.8. Memcached バックエンドのオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
servers |
array |
array(array('host' => 'localhost', 'port' => 11211, 'persistent' => true, 'weight' => 1,
'timeout' => 5, 'retry_interval' => 15, 'status' => true ))
|
memcached サーバの配列です。各 memcached サーバの情報は、 以下のような連想配列で指定します。 'host' => (string) : memcached サーバのサーバ名 'port' => (int) : memcached サーバのポート番号 'persistent' => (bool) : この memcached サーバに対して持続的な接続を使用するかどうか 'weight' => (int) : memcached サーバの重み付け 'timeout' => (int) : memcached サーバのタイムアウト 'retry_interval' => (int) : memcached サーバの再試行間隔 'status' => (bool) : memcached サーバのステータス |
compression |
boolean |
false |
その場での圧縮処理を行いたい場合に true を指定します。 |
この (拡張) バックエンドは、キャッシュレコードを共有メモリに保存する際に APC (Alternative PHP Cache) 拡張モジュールを使用します (当然、このバックエンドを使用するにはこの拡張モジュールが必要です)。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。 また、引数 "doNotTestCacheValidity=true" もサポートされていません。
このバックエンドではオプションを使用しません。
このバックエンドは、キャッシュレコードを共有メモリに保存する際に XCache 拡張モジュールを使用します (当然、このバックエンドを使うにはこの拡張モジュールが必要となります)。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。 また、引数 "doNotTestCacheValidity=true" もサポートされていません。
使用可能なオプションは次のとおりです。
表 5.9. Xcache バックエンドのオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
user |
string |
null |
xcache.admin.user です。clean() メソッドを使う際に必要です。 |
password |
string |
null |
xcache.admin.pass (MD5 ではない平文形式) です。 clean() メソッドを使う際に必要です。 |
このバックエンドは、Zend Platform 製品のコンテンツキャッシング API を使用します。当然、このバックエンドを使用するには Zend Platform をインストールする必要があります。
このバックエンドはタグをサポートしています。しかし、
クリーニングモード CLEANING_MODE_NOT_MATCHING_TAG はサポートしていません。
Zend_Cache::factory() メソッドでこのバックエンドを指定する場合は、
'Zend' と 'Platform' の間に区切り文字を入れます。区切り文字としては
'-'、'.'、' ' あるいは '_' が使用できます。
$cache = Zend_Cache::factory('Core', 'Zend Platform');
このバックエンドではオプションを使用しません。
この (拡張) バックエンドは複合型です。 キャッシュレコードを、 高速 (だが制限付き) な Apc、Memcache…… および "低速" な File、Sqlite…… の 2 種類の別々のバックエンドに格納します。
このバックエンドは priority パラメータを使用 (フロントエンドレベルで、記録開始時に指定) し、高速バックエンドの残りのスペースを用いてふたつのバックエンドの使用を最適化します。 FIXME
使用可能なオプションは次のとおりです。
表 5.10. TwoLevels バックエンドのオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|---|---|---|
slow_backend |
string |
File |
"低速" バックエンドの名前。 |
fast_backend |
string |
Apc |
"高速" バックエンドの名前。 |
slow_backend_options |
array |
array() |
"低速" バックエンドのオプション。 |
fast_backend_options |
array |
array() |
"高速" バックエンドのオプション。 |
slow_backend_custom_naming |
boolean |
false |
true の場合は、引数 slow_backend を完全なクラス名として使用します。 false の場合は、引数をクラス名 "Zend_Cache_Backend_[...]" の最後の部分として使用します。 |
fast_backend_custom_naming |
boolean |
false |
true の場合は、引数 fast_backend を完全なクラス名として使用します。 false の場合は、引数をクラス名 "Zend_Cache_Backend_[...]" の最後の部分として使用します。 |
slow_backend_autoload |
boolean |
false |
true の場合は、低速バックエンドに対して require_once を行いません (独自のバックエンドを使用する場合にのみ有用です)。 |
fast_backend_autoload |
boolean |
false |
true の場合は、高速バックエンドに対して require_once を行いません (独自のバックエンドを使用する場合にのみ有用です)。 |
auto_refresh_fast_cache |
boolean |
true |
true の場合は、キャッシュレコードにヒットしたときに 高速キャッシュを自動的にリフレッシュします。 |
stats_update_factor |
integer |
10 |
高速バックエンドを使用率の計算を無効化 / 効率化します (レコードをキャッシュに書き込む際の 高速バックエンド使用率の計算は、 キャッシュ書き込み x 回につき 1 回の割合でランダムに行われます)。 |