ホームページ >バックエンド開発 >PHPチュートリアル >PHP APC キャッシュと Redis との比較

PHP APC キャッシュと Redis との比較

WBOY
WBOYオリジナル
2016-08-08 09:19:381497ブラウズ
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 までご連絡ください。