ファイルキャッシュ
ローカルディスク上にファイルを作成して、キャッシュデータを記録・読み込みを行います。
そのため、特別な準備なく利用できますが、実データ処理とキャッシュ処理(ディスクI/O)の負荷との
トレードオフとなります。
キャッシュデータファイルの保存先
キャッシュデータファイルの保存先は、デフォルトでは「application/cache/」ディレクトリとなります。
任意の保存先を設定する場合は、「application/config/」ディレクトリ、 もしくは、
「application/config/[環境]/」 ディレクトリにある「config.php」設定ファイルの「$config['cache_path']」にディレクトリパスをセットします。
- config.php
Fileベースドライバのロード
「LOAD」オブジェクトの「driver()」メソッドで、Fileベースドライバをロードします。
第一引数に「cache」を指定し、第二引数には連想配列で、利用したいキャッシュドライバを指定します。
$this->load->driver('cache', array('adapter' => 'file'));
Fileベースドライバの機能
キャッシュドライバの機能は、主に「キャッシュ情報の取得」、
「キャッシューデータのセット」、
「キャシュデータの削除」の3種類です。
is_supported('file_based') 一番上に戻る
指定したキャッシュドライバがシステムで利用できるか確認します。
指定したキャッシュドライバが利用できる場合は「TRUE」、
利用できない場合は「FALSE」を返します。
$this->load->driver('cache', array('adapter' => 'file_based')); if ($this->cache->is_supported('file_based')) { // Fileベース キャッシングの利用が可能です。 } else { // Fileベース キャッシングは利用できません。 }
cache_info() 一番上に戻る
キャッシング情報を返します。
返すデータはキャッシュドライバによって異なります。
array (
'aaa' =>
array (
'name' => 'aaa',
'server_path' => '/var/www/vhosts/ci-guide.info/application/cache/aaa',
'size' => 67,
'date' => 1732200679,
'relative_path' => '../application/cache/',
),
'index.html' =>
array (
'name' => 'index.html',
'server_path' => '/var/www/vhosts/ci-guide.info/application/cache/index.html',
'size' => 114,
'date' => 1661603001,
'relative_path' => '../application/cache/',
),
)
save($key, $val, $ttl) 一番上に戻る
キャッシュしたいデータをセットします。
第一引数には、データを識別する「キー」を指定し、
第二引数には、データを指定します。
第三引数は、データをキャッシュする時間を秒単位で指定することができます。
第三引数を指定しなかった場合のデフォルトは「60」となります。
$id = $this->input->post('id'); if ($my_data = $this->sample_model->get($id)) { $this->cache->save("my_data_{$id}", $my_data, 600); }
get($key) 一番上に戻る
事前にキャッシュしたデータを取得します。
引数には、キャッシュしたデータを識別する「キー」を指定します。
$id = $this->input->post('id'); if (! $my_data = $this->cache->get("my_data_{$id}")) { if ($my_data = $this->sample_model->get($id)) { $this->cache->save("my_data_{$id}", $my_data, 600); } } return $my_data;
get_metadata($key) 一番上に戻る
引数で指定した「キー」のキャッシュデータ情報を返します。
expire | このキャッシュデータが削除される時間 |
mtime | このキャッシュデータがセットされた時間 |
data | キャッシュされたデータ |
$this->cache->save('aaa', 'AAA', 600); echo var_export($this->cache->get_metadata('aaa'), TRUE);
false
delete($key) 一番上に戻る
引数で指定した「キー」のキャッシュデータをキャッシュから削除します。
if ($this->cache->delete('aaa')) { // キャッシュデータを削除しました。 echo var_export($this->cache->get_metadata('aaa'), TRUE); // false } else { // キャッシュデータの削除に失敗しました。 }
clean() 一番上に戻る
全てのキャッシュデータを削除します。
if ($this->cache->clean()) { // キャッシュデータを削除しました。 } else { // キャッシュデータの削除に失敗しました。 }