Maison >développement back-end >Problème PHP >Que sont les caches php ?
1. Mise en cache statique pleine page :
Générer toutes les pages dans des pages statiques HTML, lorsque les utilisateurs visite, ils accèdent directement à la page statique sans passer par le processus d’analyse du serveur PHP. Cette méthode est plus courante dans les systèmes CMS, tels que les dedecms.
Méthode d'implémentation : mise en cache de sortie
ob_start()--打开“输出控制缓冲”; some code --要运行的代码; $content=ob_get_contents()--返回“输出缓冲区的内容”; some code --使用file_put_contents()等函数将返回的数据写入HTML文件; ob_clearn()--清空“输出缓冲区”;
2. Mise en cache partielle des pages :
Cache statique des parties de la page qui ne changent pas fréquemment, et Les parties qui changent fréquemment ne sont pas mises en cache et sont finalement assemblées pour être affichées ; cela peut être implémenté en utilisant une méthode similaire à ob_get_contents(), ou une stratégie de mise en cache de fragments de page telle que ESI peut être utilisée pour mettre en cache des fragments relativement statiques dans un cache de pages dynamique. Cette méthode de mise en cache est couramment utilisée pour les pages de produits dans les centres commerciaux.
Recommandations associées : "Tutoriel d'introduction à PHP"
3. Mise en cache des données :
Un moyen de mettre en cache les données. Par exemple, lorsqu'une certaine information sur un produit dans le centre commercial est demandée à l'aide de l'ID du produit, les données comprenant les informations sur le magasin, les informations sur le produit, etc. peuvent être mises en cache dans un fichier PHP, et le nom du fichier contient l'ID du produit pour créer un identifiant unique. ; la prochaine fois que quelqu'un voudra voir ce produit, ajustez d'abord directement les informations de ce fichier sans interroger la base de données ; en fait, ce qui est mis en cache dans le fichier cache est un tableau php dans le système du centre commercial Ecmall, utilisé cette méthode ;
4. Mise en cache des requêtes :
Cache basé sur la requête. Mettez en cache les données obtenues à partir de la requête dans un fichier. La prochaine fois que vous rencontrerez la même requête, vous pourrez transférer directement les données de ce fichier sans vérifier la base de données ; mais le nom du fichier cache ici devra peut-être être basé sur l'instruction de requête. points de base pour créer un identifiant unique.
Remarque : les méthodes de mise en cache ci-dessus doivent toutes définir une heure de validité pour le fichier mis en cache. Pendant ce temps, le même accès récupérera d'abord le contenu du fichier mis en cache. Une fois l'heure de validité dépassée, les données. sera réobtenu à partir de la base de données et générera un nouveau fichier cache.
5. Mise en cache en mémoire :
Utilisez Redis, Memcached et d'autres bases de données Nosql pour configurer le cache PHP et mettre en cache les résultats des requêtes pour réduire le nombre de visites de la base de données. , améliorant ainsi la vitesse de réponse du site Web.
6. Module de cache Apache :
Une fois Apache installé, il n'est pas autorisé à être mis en cache. Si un cache externe ou un serveur Squid nécessite une accélération Web, il doit être défini dans httpd.conf. Bien entendu, le principe est que le module mod_cache doit être activé lors de l'installation d'Apache.
Lors de l'installation d'Apache : ./configure –enable-cache –enable-disk-cache –enable-mem-cache
Extension de cache PHP APC :
Utilisez l'extension APC en PHP pour la mise en cache.
8. Mise en cache du code Opcode :
D'abord, le code php est analysé en jetons, puis compilé en code Opcode, et enfin le code Opcode est exécuté et le résultat est renvoyé ; donc, pour Le même fichier php peut mettre en cache son code Opcode lors de sa première exécution. La prochaine fois que vous exécuterez cette page, vous trouverez directement le code Opcode mis en cache et exécuterez directement la dernière étape, sans avoir besoin de le faire. étapes intermédiaires. Les plus connus sont XCache, Turck MM Cache, PHP Accelerator, etc.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!