PHP APC キャッシュと Redis との比較
リリース: 2016-08-08 09:19:38
APC の紹介APC の正式名は Alternative PHP Cache で、PHP コードやユーザー データをキャッシュするために使用されるオープン ソースの PHP プラグインです。 APC
PHP コード apc のキャッシュにより、PHP の動的解析とコンパイルの時間が短縮され、PHP スクリプトの実行が高速化されます。下の図は、apc が php スクリプトの実行を高速化できる理由をよく示しています。
PHP は動的スクリプト言語であるため、ユーザーがブラウザーでページのコンテンツを表示するには、サーバーが PHP コードを解析して目的の HTML コードを生成する必要があります。上の図からわかるように、APC がない場合、ユーザーが PHP ページをリクエストするたびに、サーバーは PHP コードを変更しない限り、何度も PHP を解析、コンパイル、実行する必要があります。 PHP の実行ロジックは変更されません。つまり、解析とコンパイルのプロセスを省略でき、直接実行して結果を返すだけです。これは APC の仕事です。APC は PHP の実行可能コードをキャッシュするため、解析とコンパイルのプロセスが不要になり、PHP スクリプトの実行が高速化されます。 APC
ユーザー データのキャッシュと PHP コードのキャッシュに加えて、APC はユーザー データもキャッシュできます。ただし、APC の容量は非常に小さいため、長期間変更されないデータをキャッシュするのが最適です。天体の単位であること。したがって、データが頻繁に変更され、データ量が比較的大きい場合は、apc を使用せず、memcache または redis を使用できます。 以下は、apc と redis の効率比較を確認するための、apc と redis の比較テスト実験です。 function getTimeStamp() {
$timestr = microtime();
$timestrary = explode(' ', $timestr);
$result = intval($timestrary[1])*1000 + intval(floatval($timestrary[0])*1000);
return $result;
}
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'key';
$value ='value';
$redis->set($key, $value);
apc_store($key, $value, 1);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
$result = apc_fetch($key);
}
$cost = getTimeStamp() - $begin;
var_dump($cost);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
$result = $redis->get($key);
}
$cost = getTimeStamp() - $begin;
var_dump($cost);
$redis->close();
ログイン後にコピー
はすべて単純なデータ取得操作であり、ミリ秒単位でそれぞれ 100,000 回実行されます。最終的な実行結果は、redis は 4 ~ 5 秒で 100,000 回読み取り、apc は約 50 ミリ秒で 100,000 回読み取ります。一部のデータを単純にキャッシュし、そのデータが変更されずにヒットした場合でも、apc は一定の効率向上をもたらすことがわかります。 apc をインストールすると、apc のヒットを確認できる apc.php ページが表示されます。以下に示すように
APC構成構成例は次のとおりです:extension= apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=64M ; apc内存的大小,最后的大小需要乘上segments的数量,所以这里一共为apc分配64M
apc.ttl=7200
apc.user_ttl=7200
apc.enable_cli=1 ; 这个如果不开启,则只可以在网页上进行apc操作,不能通过cli进行apc操作
ログイン後にコピー
参考http://www.inmotionhosting.com/support/website/what-is/speed-up -php -with-apc http://bbs.phpchina.com/thread-202432-1-1.html
著作権表示: この記事はブロガーによるオリジナルの記事であり、許可なく複製することはできません。ブロガーの許可。
以上、PHPのapcキャッシュとredisとの比較を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31