Zend Data Cache (データ・キャッシュ) API

Zend Server のデータ・キャッシュ機能を PHP から使用するための API です。
関数 へジャンプ

ディレクティブ

ディレクティブ既定値 初出Ver最終Ver 説明
zend_datacache.shm.memory_cache_size(説明
参照)
5.07.0 単一の名前空間で使用される共用メモリの量。
既定値は、Windows / Linux 版の場合 32、IBM i の場合 2 です。
zend_datacache.shm.memory_cache_size_kb0 5.6 単一の名前空間で使用される共用メモリの量(キビバイト単位)
zend_datacache.shm.max_num_namespaces0データ・キャッシュが割り当てられる名前空間の個数の最大
zend_datacache.disk.save_pathdatacache 5.0 キャッシュしたコンテンツをディスクに保管するパス
zend_datacache.disk.dir_level2キーを保存するためのディレクトリーの深さ
zend_datacache.enable1データ・キャッシュを有効にする
zend_datacache.lock_on_expire1期限切れ時のロック機構を有効にします。 パフォーマンス上の理由により有効のままにしてください
zend_datacache.apc_compatibility1有効にすると、データ・キャッシュは APC 互換メソッドを示します
zend_datacache.log_verbosity_level2ログ冗長レベル。詳しくは、Zend Util API 参照
zend_datacache.log_rotation_size10ログファイルの最大サイズ (MB 単位)。 超過するとローテートします

関数

zend_shm_* は共用メモリ、zend_disk_* はディスクを使用します。
関数名
(初出Ver - 最終Ver)
説明
zend_shm_cache_store
zend_disk_cache_store
(5.0 - 7.0)
キーで識別される変数をキャッシュに保存します。 名前空間を指定した場合、その名前空間の下にキーが保存されます。 同一のキーが、異なる名前空間の下に存在することができます。
引数必須/任意説明
key文字列必須データ・キー。 任意で名前空間によるプレフィックス
value混合必須シリアライズ可能な PHP オブジェクト
ttl整数任意 有効期間(秒単位)。 有効期間の間、オブジェクトをキャッシュに保持します。 有効期間を超えるとオブジェクトはキャッシュから削除されます。 既定値はゼロです。
返り値:保存が失敗した場合 FALSE、それ以外は TRUE
zend_shm_cache_fetch
zend_disk_cache_fetch
(5.0 - 7.0)
キャッシュからデータをフェッチします。 指定した名前空間内だけで検索することを示すために、名前空間によるプレフィックスをキーに付けられます。 名前空間を指定しない場合、グローバルな名前空間内でキーを検索します。
引数必須/任意説明
key混合必須データ・キーまたはデータ・キーの配列。 任意で名前空間によるプレフィックス
返り値:キーに一致するデータが見つからなければ FALSE、見つかった場合は保存されたデータ。 キーの配列が指定された場合は配列です。そのキーは元のキーで、値は対応するデータの値です。
zend_shm_cache_delete
zend_disk_cache_delete
(5.0 - 7.0)
キャッシュから項目を検索して削除します。識別するためにキーを使用します。 その名前空間内だけからキーを削除することを示すために、キーに名前空間によるプレフィックスを付けられます。 名前空間を指定しない場合、グローバルな名前空間内でキーを検索します。
引数必須/任意説明
key混合必須データ・キーまたはデータ・キーの配列。 任意で名前空間によるプレフィックス
返り値:成功した場合に TRUE、失敗した場合に FALSE
zend_shm_cache_clear
zend_disk_cache_clear
(5.0 - 7.0)
キャッシュのすべての名前空間からすべての項目を削除します。 名前空間を指定した場合、その名前空間の項目だけが削除されます。
引数必須/任意説明
namespace文字列必須データのキー。 任意で名前空間によるプレフィックス
返り値:成功した場合に TRUE、失敗した場合に FALSE

使用例

//必要なデータがキャッシュに存在するか確認する。
$results = zend_shm_cache_fetch('myData');
if ($results === false) {
  //存在しなかった場合は、データを取得するために重たい処理をやむを得ず実行する。
  //例えば複雑な計算、データベースへのアクセス、API 呼び出しなど
  some_connect(...);
  ...
  $results = some_fetch(...);
  some_close(...);

  //次回再利用するためにデータをキャッシュに格納しておく。
  zend_shm_cache_store('myData', $results, 120);
}