APC User Cache
- はじめに
- インストール/設定
- 定義済み定数
- APCu 関数
- apcu_add — 新規の変数をデータ領域にキャッシュする
- apcu_cache_info — APCu のデータから、キャッシュされた情報を取得する
- apcu_cas — 古い値を新しい値に更新する
- apcu_clear_cache — APCu キャッシュをクリアする
- apcu_dec — 保存した数値を減らす
- apcu_delete — 格納されている変数をキャッシュから取り除く
- apcu_enabled — 現在の環境で apcu が使えるかを確認する
- apcu_entry — アトミックに値を取得するか、キャッシュエントリを生成する
- apcu_exists — エントリが存在するかどうかを調べる
- apcu_fetch — 格納されている変数をキャッシュから取得する
- apcu_inc — 保存した数値を増やす
- apcu_key_info — キャッシュのキーに関する詳細な情報を取得する
- apcu_sma_info — APCu の共有メモリ割り当てに関する情報を取得する
- apcu_store — 変数をデータ領域にキャッシュする
- APCUIterator — APCUIterator クラス
- APCUIterator::__construct — APCUIterator イテレータオブジェクトを作成する
- APCUIterator::current — 現在の項目を取得する
- APCUIterator::getTotalCount — 総数を取得する
- APCUIterator::getTotalHits — キャッシュヒットの総数を取得する
- APCUIterator::getTotalSize — キャッシュのサイズの合計を取得する
- APCUIterator::key — イテレータのキーを取得する
- APCUIterator::next — ポインタを次の項目に移動させる
- APCUIterator::rewind — イテレータを巻き戻す
- APCUIterator::valid — 現在位置が有効かどうかを調べる
+add a note
User Contributed Notes 1 note
boefje at hotmail dot com ¶
4 years ago
To use apcu, the apcu extension has to be installed. You can find it here https://pecl.php.net/package/APCu
Note: apcu is not the same as apc!
APCu is the official replacement for the outdated APC extension. APC provided both opcode caching (opcache) and object caching. As PHP versions 5.5 and above include their own opcache, APC was no longer compatible, and its opcache functionality became useless. The developers of APC then created APCu, which offers only the object caching (read "in memory data caching") functionality (they removed the outdated opcache).
Wondering how to use apcu? The following example should give you a basic understanding.
<?php
date_default_timezone_set('Europe/Amsterdam');
$apcuAvailabe = function_exists('apcu_enabled') && apcu_enabled();
if($apcuAvailabe)
{
//apcu_clear_cache();
$test1 = apcu_fetch('test1');
$test2 = apcu_fetch('test2');
}
$test1[] = rand(1, 1000);
$test2[] = rand(1, 1000);
if($apcuAvailabe)
{
apcu_store('test1', $test1);
apcu_store('test2', $test2);
}
echo sprintf('current - value = %s<br/>', implode(' ,', $test1));
echo sprintf('current - value = %s<br/>', implode(' ,', $test2));
$aPCUIterator = new APCUIterator();
echo sprintf('totalCount = %s<br/>', $aPCUIterator->getTotalCount());
//echo sprintf('totalHits = %s<br/>', $aPCUIterator->getTotalHits()); // Not implemneted/available?
echo sprintf('totalSize = %s<br/>', $aPCUIterator->getTotalSize());
echo '----------------------------------<br/>';
$aPCUIterator->rewind();
echo sprintf('key = %s<br/>', $aPCUIterator->key());
echoCurrent($aPCUIterator->current());
$aPCUIterator->next();
echo '----------------------------------<br/>';
echo sprintf('key = %s<br/>', $aPCUIterator->key());
echoCurrent($aPCUIterator->current());
echo sprintf('valid = %s<br/>', $aPCUIterator->valid() ? 'true' : 'false');
function echoCurrent($current)
{
echo sprintf('current - type = %s<br/>', $current['type']);
echo sprintf('current - key = %s<br/>', $current['key']);
echo sprintf('current - value = %s<br/>', implode(' ,', $current['value']));
//echo sprintf('current - num_hits = %s<br/>', $current['num_hits']); // Not implemneted/available?
echo sprintf('current - mtime = %s<br/>', date("d-m-Y H:i:s", $current['mtime']));
echo sprintf('current - creation_time = %s<br/>', date("d-m-Y H:i:s", $current['creation_time']));
echo sprintf('current - deletion_time = %s<br/>', date("d-m-Y H:i:s", $current['deletion_time']));
echo sprintf('current - access_time = %s<br/>', date("d-m-Y H:i:s", $current['access_time']));
//echo sprintf('current - ref_count = %s<br/>', $current['ref_count']); // Not implemneted/available?
echo sprintf('current - mem_size = %s<br/>', $current['mem_size']);
//echo sprintf('current - ttl = %s<br/>', $current['ttl']); // Not implemneted/available?
}
?>
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google