Zend_Cache のバックエンド
バックエンドには、標準と拡張の 2 種類があります。
もちろん、拡張バックエンドのほうがより高機能となります。
Zend_Cache_Backend_File
この (拡張) バックエンドは、キャッシュレコードを
(指定したディレクトリの) ファイルに保存します。
使用可能なオプションは次のとおりです。
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
Integer
0
ディレクトリ構造のレベルを指定します。0 は "ディレクトリ階層を作らない"、
1 は "一段階のサブディレクトリを作る"、2 は "二段階の……" を意味します。
何千ものキャッシュファイルを使用する場合にのみ、
このオプションによる高速化を実感できるでしょう。
適切な設定値を決めるには、実際にベンチマークを取得するしかありません。
たいていの場合は 1 または 2 でよいでしょう。
hashed_directory_umask
Integer
0700
ディレクトリ構造の umask を指定します。
file_name_prefix
String
'zend_cache'
キャッシュファイルのプレフィックスを設定します。
このオプションを設定する際には十分注意しましょう。
あまりにもありふれた値をシステムのキャッシュディレクトリ
(/tmp など) で使用すると、
キャッシュの削除の際に余計なものまで削除されてしまうはめになります。
cache_file_umask
Integer
0700
キャッシュファイルの umask を設定します。
metatadatas_array_max_size
Integer
100
メタデータ配列の内部最大サイズを設定します
(よくわからない場合はこの値を変更してはいけません)。
Zend_Cache_Backend_Sqlite
この (拡張) バックエンドは、キャッシュレコードを
SQLite データベースに保存します。
使用可能なオプションは次のとおりです。
Sqlite バックエンドのオプション
オプション
データ型
デフォルト値
説明
cache_db_complete_path (必須)
String
NULL
SQLite データベースへの (ファイル名も含めた) フルパス。
automatic_vacuum_factor
Integer
10
自動バキューム処理の設定を行います。
自動バキューム処理とは、clean() や delete()
がコールされた際に自動的にデータベースの断片化解消を行う
(そしてサイズを縮小する) ことです。
0 を指定すると、自動バキュームを行いません。
1 を指定すると (delete() や clean()
がコールされると) そのたびにバキュームを行います。
x (1 より大きな整数) を指定すると、
clean() や delete() が x 回コールされるたびに
一回の頻度でランダムに自動バキュームを行います。
Zend_Cache_Backend_Memcached
この (拡張) バックエンドは、キャッシュレコードを memcached サーバに保存します。
memcached は、
高性能な分散メモリオブジェクトキャッシュシステムです。このバックエンドを使用するには、
memcached デーモンおよび
memcache PECL 拡張モジュール
が必要です。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。
また、引数 "doNotTestCacheValidity=true" もサポートされていません。
使用可能なオプションは次のとおりです。
Memcached バックエンドのオプション
オプション
データ型
デフォルト値
説明
servers
Array
array(array('host' => 'localhost', 'port' => 11211, 'persistent' => true, 'weight' => 1,
'timeout' => 5, 'retry_interval' => 15, 'status' => true, 'failure_callback' => '' ))
memcached サーバの配列です。各 memcached サーバの情報は、
以下のような連想配列で指定します。
'host' => (string) : memcached サーバのサーバ名
'port' => (int) : memcached サーバのポート番号
'persistent' => (bool) : この memcached サーバに対して持続的な接続を使用するかどうか
'weight' => (int) : memcached サーバの重み付け
'timeout' => (int) : memcached サーバのタイムアウト
'retry_interval' => (int) : memcached サーバの再試行間隔
'status' => (bool) : memcached サーバのステータス
'failure_callback' => (callback) : memcached サーバのコールバック関数
compression
Boolean
FALSE
その場での圧縮処理を行いたい場合に true を指定します。
compatibility
Boolean
FALSE
古い memcache サーバ/拡張モジュールとの互換性モードを使用したい場合に
true を指定します。
Zend_Cache_Backend_Apc
この (拡張) バックエンドは、キャッシュレコードを共有メモリに保存する際に
APC (Alternative PHP Cache)
拡張モジュールを使用します
(当然、このバックエンドを使用するにはこの拡張モジュールが必要です)。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。
また、引数 "doNotTestCacheValidity=true" もサポートされていません。
このバックエンドではオプションを使用しません。
Zend_Cache_Backend_Xcache
このバックエンドは、キャッシュレコードを共有メモリに保存する際に
XCache
拡張モジュールを使用します
(当然、このバックエンドを使うにはこの拡張モジュールが必要となります)。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。
また、引数 "doNotTestCacheValidity=true" もサポートされていません。
使用可能なオプションは次のとおりです。
Xcache バックエンドのオプション
オプション
データ型
デフォルト値
説明
user
String
NULL
xcache.admin.user です。
clean() メソッドを使う際に必要です。
password
String
NULL
xcache.admin.pass (MD5 ではない平文形式) です。
clean() メソッドを使う際に必要です。
Zend_Cache_Backend_ZendPlatform
このバックエンドは、Zend Platform
製品のコンテンツキャッシング API を使用します。当然、このバックエンドを使用するには
Zend Platform をインストールする必要があります。
このバックエンドはタグをサポートしています。しかし、
クリーニングモード CLEANING_MODE_NOT_MATCHING_TAG はサポートしていません。
Zend_Cache::factory() メソッドでこのバックエンドを指定する場合は、
'Zend' と 'Platform' の間に区切り文字を入れます。区切り文字としては
'-'、'.'、' ' あるいは '_' が使用できます。
このバックエンドではオプションを使用しません。
Zend_Cache_Backend_TwoLevels
この (拡張) バックエンドは複合型です。
キャッシュレコードを、
高速 (だが制限付き) な Apc、Memcache…… および "低速"
な File、Sqlite…… の 2 種類の別々のバックエンドに格納します。
このバックエンドは priority パラメータを使用 (フロントエンドレベルで、記録開始時に指定)
し、高速バックエンドの残りのスペースを用いてふたつのバックエンドの使用を最適化します。
使用可能なオプションは次のとおりです。
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 回の割合でランダムに行われます)。
Zend_Cache_Backend_ZendServer_Disk および Zend_Cache_Backend_ZendServer_ShMem
これらのバックエンドは、キャッシュレコードの保存に
Zend Server
のキャッシュ機能を使用します。
注意: このバックエンドでは、今のところ "タグ" がサポートされていません。
また、引数 "doNotTestCacheValidity=true" もサポートされていません。
これらのバックエンドが動作するのは、Zend Server 環境で
HTTP あるいは HTTPS
越しにページをリクエストした場合のみです。
コマンドラインでスクリプトを実行した場合は動作しません。
このバックエンドにはオプションはありません。