Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erläuterung der Vorteile und Codebeispiele der PHP-Webseiten-Caching-Technologie
Statisches Frontend: Analysieren Sie die dynamische Seite und speichern Sie sie als statische Seite
Dateicache: Speichern Sie die Abfrageergebnisse als Datei, XML
Speichercache: Memcache
PHP-Cache: Er kann zum Speichern von Daten in verschiedenen Formaten verwendet werden, einschließlich Bildern, Videos, Dateien und Datenbanksuchergebnissen. Einfach ausgedrückt werden die Daten in den Speicher abgerufen und dann aus dem Speicher gelesen, wodurch die Lesegeschwindigkeit erheblich verbessert wird. Memcache ist ein Projekt von Danga. Es wurde ursprünglich entwickelt, um den Zugriff auf LiveJournal zu beschleunigen, und wurde später von vielen großen Websites übernommen. Memcached läuft auf einem oder mehreren Servern als Daemon und empfängt jederzeit Client-Verbindungen und -Vorgänge.
XCache ist ein Open-Source-Opcode-Cache/Optimierer, was bedeutet, dass er die Leistung von PHP auf Ihrem Server verbessern kann. Er vermeidet wiederholte Kompilierungsvorgänge, indem er die kompilierten PHP-Daten im gemeinsam genutzten Speicher puffert Code zur Erhöhung der Geschwindigkeit. Erhöht normalerweise die Seitengenerierungsrate um das Zwei- bis Fünffache und reduziert so die Serverlast.
****************** ********* **************************************** ******** ***************************************** ******* *****************************
1. Universelle Caching-Technologie:Datencache: Der hier erwähnte Datencache bezieht sich auf den PHP-Cache-Mechanismus für Datenbankabfragen. Bei jedem Zugriff auf eine Seite wird zunächst festgestellt, ob die entsprechenden zwischengespeicherten Daten vorhanden sind. Die Datenbank ruft die Daten ab und serialisiert die Abfrageergebnisse und speichert sie in der Datei. In Zukunft werden dieselben Abfrageergebnisse direkt aus der Cache-Tabelle oder -Datei abgerufen.
Das am weitesten verbreitete Beispiel ist die Suchfunktion von Discuz, die die Ergebnis-ID in einer Tabelle zwischenspeichert und bei der nächsten Suche nach demselben Schlüsselwort zuerst die Cache-Tabelle durchsucht.
Wenn mehrere Tabellen verknüpft sind, wird der Inhalt der angehängten Tabelle in einem Array generiert und in einem Feld der Haupttabelle gespeichert. Der Vorteil davon ist Da nur eine Tabelle gelesen werden kann, ist der Nachteil, dass viele weitere Schritte erforderlich sind, um die beiden Daten zu synchronisieren. Der entscheidende Punkt hierbei ist die Datenbank.
2. Seiten-Cache:Bei jedem Zugriff auf eine Seite wird zunächst geprüft, ob die entsprechende zwischengespeicherte Seitendatei vorhanden ist Öffnen Sie die Datenbank und rufen Sie Daten ab, zeigen Sie die Seite an und generieren Sie gleichzeitig eine Cache-Seitendatei, sodass die Seitendatei beim nächsten Besuch wirksam wird. (Template-Engines und einige gängige PHP-Caching-Mechanismusklassen im Internet verfügen normalerweise über diese Funktion)
3 Zeitgesteuertes Caching:Überprüfen Sie, ob die Datei vorhanden ist und die Der Zeitstempel ist kleiner als die Einstellung. Die Ablaufzeit. Wenn der Zeitstempel der Dateiänderung größer als der aktuelle Zeitstempel abzüglich des Ablaufzeitstempels ist, verwenden Sie den Cache, andernfalls aktualisieren Sie den Cache.
4. Inhaltsgesteuertes Caching:Wenn Daten eingefügt oder aktualisiert werden, muss der PHP-Cache-Mechanismus aktualisiert werden.
5. Statischer Cache:Der hier erwähnte statische Cache bezieht sich auf statisch, der Textdateien wie HTML oder XML direkt generiert und bei Aktualisierungen neu generiert . , geeignet für Seiten, die sich nicht viel ändern, daher werde ich hier nicht darauf eingehen.
Der obige Inhalt ist eine Lösung auf Codeebene. Ich bin zu faul, ihn zu ändern. Der Inhalt ist ähnlich, er ist einfach zu machen und kann auf verschiedene Arten verwendet werden, aber wie folgt Inhalt ist für die End-End-Caching-Lösung des Servers, nicht auf Codeebene, erfordert die Zusammenarbeit mehrerer Parteien, um
6 zu erreichen. Speichercache:Memcached ist ein Das hochleistungsfähige, verteilte Speicherobjekt-PHP-Caching-Mechanismussystem wird verwendet, um die Datenbanklast zu reduzieren und die Zugriffsgeschwindigkeit in dynamischen Anwendungen zu verbessern.
7. PHP-Puffer:Es gibt Eaccelerator, APC, PHPA, Xcache, ich werde nicht darüber sprechen, suchen Sie selbst nach einem Haufen davon. Es ist in Ordnung zu wissen, dass dieses Ding existiert.
8 Dies gilt auch für Nicht-Code-Datenbanken, die diese Methode verwenden Zeit unten, 0,09xxx und dergleichen9 Web-Cache basierend auf Reverse-Proxy:
Wie Nginx, SQUID, mod_proxy (Apache2 und höher sind in For unterteilt mod_proxy und mod_cache)10. DNS-Abfrage:
, suchen Sie es selbst, wissen Sie einfach, dass dieses Ding existiert.
Ich weiß, dass einige große Websites wie Chinacache dies tun. Vereinfacht ausgedrückt handelt es sich dabei um mehrere Server, bei denen dieselbe Seite oder Datei auf verschiedenen Servern zwischengespeichert und entsprechend automatisch analysiert wird im Norden und Süden im Server.
Beispiel für PHP-Webseiten-Caching
用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。
首先,设定过期时间,如果要求缓存文件2个小时过期,就可以设定cache_time为3600*2;通过filectime()来获取缓存文件的创建时间(或 filemtime()获取修改时间),如果当前时间跟文件的创建时间超过限定的过期时间,就可以通过上面三个函数,首先从数据库中取出数据,然后开始缓存ob_start(),然后把要生成的页面的html代码写在缓存中,缓存结束后通过ob_get_contents()获取到缓存的内容,然后通过fwrite把缓存内容写到静态页面html。
如果未过期,直接读取cache中的静态页面即可,避免了大量的数据库访问。
<?php $_time =10; $dir="D:\\php\\"; function cache_start($_time, $dir) { $cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html'; $cachetime = $_time; ob_start(); if(file_exists($cachefile) && (time()-filemtime($cachefile) < $cachetime)) { include($cachefile); ob_end_flush(); exit; } } function cache_end($dir) { $cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html'; $fp = fopen($cachefile, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush(); } cache_start($_time, $dir); //以下是输出的内容,放在cache_start和cache_end两个方法之间 for ($i=0;$i<5;$i++) { echo $i; sleep(1); } cache_end($dir); ?>
相关学习推荐:PHP编程从入门到精通
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Vorteile und Codebeispiele der PHP-Webseiten-Caching-Technologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!