Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-APC-Cache und Vergleich mit Redis

PHP-APC-Cache und Vergleich mit Redis

WBOY
WBOYOriginal
2016-08-08 09:19:381439Durchsuche
Einführung in APCDer vollständige Name von APC ist Alternative PHP Cache, ein Open-Source-PHP-Plug-in, das zum Zwischenspeichern von PHP-Code oder Benutzerdaten verwendet wird. APC Durch das Zwischenspeichern von PHP-Code apc kann die Zeit für das dynamische Parsen und Kompilieren von PHP verkürzt werden, und PHP-Skripte können schneller ausgeführt werden. Das Bild unten veranschaulicht gut, warum APC die Ausführung von PHP-Skripten beschleunigen kann.
PHP ist eine dynamische Skriptsprache. Damit Benutzer den Seiteninhalt im Browser sehen können, muss der Server ihn analysieren PHP-Code zum Generieren des HTML-Codes, den Sie verwenden möchten. Wie aus der obigen Abbildung ersichtlich ist, muss der Server jedes Mal, wenn kein APC vorhanden ist, PHP analysieren, kompilieren und ausführen, solange sich der PHP-Code nicht ändert. PHPs Die Ausführungslogik ändert sich nicht, was bedeutet, dass der Prozess des Parsens und Kompilierens weggelassen werden kann. Führen Sie ihn einfach direkt aus und geben Sie das Ergebnis zurück. Dies ist die Aufgabe von APC, den ausführbaren Code von PHP zwischenzuspeichern, wodurch der Parsing- und Kompilierungsprozess entfällt und die Ausführung von PHP-Skripten beschleunigt wird. APC Zwischenspeichern von Benutzerdaten und Zusätzlich zum Zwischenspeichern von PHP-Code kann APC auch Benutzerdaten zwischenspeichern. Da die Kapazität von APC jedoch sehr gering ist, ist es am besten, Daten zwischenzuspeichern, die sich über einen längeren Zeitraum nicht ändern . Für Daten sollten konstante Einheiten in Tagen angegeben werden. Wenn sich die Daten also häufig ändern und die Datenmenge relativ groß ist, verwenden Sie nicht apc. Sie können Memcache oder Redis verwenden. Das Folgende ist ein Vergleichstestexperiment zwischen APC und Redis, um den Effizienzvergleich zwischen APC und Redis zu sehen.
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();
  

sind alles einfache Datenabrufvorgänge, die jeweils 100.000 Mal in Millisekunden ausgeführt werden. Das Endergebnis ist, dass Redis in 4 bis 5 Sekunden 100.000 Mal liest, während APC in etwa 50 Millisekunden 100.000 Mal liest. Es ist ersichtlich, dass APC immer noch zu einer gewissen Effizienzverbesserung führen kann, wenn Sie einfach einige Daten zwischenspeichern und sich die Daten nicht ändern. Bei der Installation von apc wird es eine apc.php-Seite geben, über die Sie apc-Treffer anzeigen können. Wie unten gezeigt
APC-Konfiguration Konfigurationsbeispiel ist wie folgt:
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操作

Referenzhttp://www.inmotionhosting.com/support/website/what-is/speed-up-php-with-apc http://bbs.phpchina .com/thread-202432-1-1.html

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne dessen Genehmigung reproduziert werden.

Das Obige stellt den PHP-APC-Cache und den Vergleich mit Redis vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:log4php-InstallationNächster Artikel:log4php-Installation