[script] Mise en cache des pages PHP


tawath
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 30 Avr 2005

Message le Dim Juin 19, 2005 17:16

Bonjour
Ce serait possible de rajouter le code pour vérifier qu'il n'existe pas de page plus récente dans la db et de mettre le cache à jour en conséquence :oops:


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Lun Juin 20, 2005 8:10

tawath a écrit:Bonjour
Ce serait possible de rajouter le code pour vérifier qu'il n'existe pas de page plus récente dans la db et de mettre le cache à jour en conséquence :oops:


Si je comprends bien ce que tu veux faire, c'est de tester dans la BDD la date de mise à jour de la page et si la date est plus recente que le fichier en cache, générer un nouveau fichier dans le cache?


itsme
WRInaute impliqué
WRInaute impliqué
 
Messages: 744
Inscription: 13 Oct 2004

Message le Lun Juin 20, 2005 8:47

heu... pourquoi re-inventer la poudre ? il y a jpcache qui fait tout cela tres bien :/


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Lun Juin 20, 2005 8:56

et pourquoi pas! :oops:

Ce fil a aussi des vertus pédagogiques en faisant découvrir de nouvelle fonction PHP à tous ceux qui se lancent, en expliquant des mécanismes et en les personnalisants.

Par exemple, je prépare une petite modification de ce script pour générer automatiquement lors de la mise en cache le fameux fichier XML GoogleSitemap! :D

Je le teste et le publie dés que possible!


tawath
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 30 Avr 2005

Message le Lun Juin 20, 2005 19:56

fandecine a écrit:
tawath a écrit:Bonjour
Ce serait possible de rajouter le code pour vérifier qu'il n'existe pas de page plus récente dans la db et de mettre le cache à jour en conséquence :oops:


Si je comprends bien ce que tu veux faire, c'est de tester dans la BDD la date de mise à jour de la page et si la date est plus recente que le fichier en cache, générer un nouveau fichier dans le cache?


Affirmatif :wink:
Tu m'a compris j'ai pas envie de jouer du ftp pour supprimer une page parmi des centaines.... :?
Ton script?
avec joie si il génére aussi la sitemap pour gogol1er que du bonheur :D Je te guette Fan!

Jpcache je vais me documenter,masi quitte à reinventer la poudre on peut l'améliorer parfois :wink:


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Lun Juin 20, 2005 21:55

ok tawath!

si t'es pas trop pressé, je publie tout ça dans la semaine, car là, je suis un peu charette! :wink:


tawath
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 30 Avr 2005

Message le Lun Juin 20, 2005 22:17

Impecable je suis prêt à beta-tester :)
Bonne nuit
ps:moi aussi je suis chariot cette semaine :cry:


Fab le Fou
WRInaute passionné
WRInaute passionné
 
Messages: 1511
Inscription: 2 Déc 2004

Message le Mer Juin 22, 2005 16:29

Avec le même objectif d'accélérer le chargement des pages et diminuer la charge du serveur, je suis entrain de revoir le fonctionnement d'un de mes sites.

En fait, au lieu d'appeler la base de données à chaque fois qu'un visiteur appelle une page, je ne le fais qu'une seule fois dans mon backoffice au moment où je mets à jour mes données.

Si l'enregistrement s'est bien passé j'appelle alors des fonctions qui vont générer ou modifier les fichiers contenant le code client qui apparait dans mes pages (via des include()).

En fait, mes pages "pseudo-statiques" seront composées de plusieurs fichiers, qui seront modifiés si il y a lieu lors des mises à jour (il n'y a pas de durée d'expiration à priori).

Cette solution n'est pas meilleure que celle proposée ici, mais c'est une alternative possible ayant un même but.

Fab


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Mer Juin 29, 2005 18:41

comme promis, le script de gération automatique du sitemap est disponible http://www.webrankinfo.com/forums/viewt ... p?p=303101

:D


hipopulation
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 346
Inscription: 28 Juil 2004

Message le Jeu Juin 30, 2005 9:00

yep, faut que je teste cette histoire de mise en cache, je connais ça avec SPIP et c'est vrai que c'est plutot efficace:-)

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Mar Juil 12, 2005 8:54

Bonjour,

Alors tout d’abords un grand bravo pour ce partage…. ! Et félicitation…

Cependant quelques questions me taraudent encore…

- Vous dites que cela sera efficace en fonction du nombre de requête que l’on évite au serveur en mettant le code généré en cache. Mais quel est à peu près le nombre de requête ? (je comprends bien que cela dépends des requêtes, mais il s’agit juste d’avoir une idée)

- Je n’est pas bien saisie concernant le dossier cache, faut-il simplement le créer ? (dans ce cas quel droit unix doit-on lui donner, à quel endroit le créer ? public_html ?)

- Vous dites que cela est avantageux si l’on est sur un serveur dédié… Mais si le dossier cache est à la racine de notre site, cela revient au même pour un serveur mut. Car le principe reste le même ! Plus besoin de régénérer le document, il est directement envoyé ? ai-je bien compris…. ?

- Si l’on possède un forum, on applique aussi ce type de méthode ? (je pense que ce doit-être lourd, non ? chaque modification supprimer la page en cache, la recréer en cache à la première demande…cela peut-être lourd pour un forum subissant beaucoup de modifications ?)

- Enfin, pour supprimer la page en cache (j’ai bien bien compris qu’il y a un une méthode ftp) mais par impossibilité de procéder comme ceci, je souhaiterais savoir s’il existe une fonction (un code comme pour l’ajout en cache) qui permettrais de supprimer la page en cache à chaque modifcation…(par exemple un site administrable, qui voit son accueil modifier une foi par semaine, cette méthode serait très aventageuse !


Désolé de toutes ces interrogations, mais en tout cas encore un grand bravo….
Merci !!!!!!!!!!


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Mar Juil 12, 2005 9:22

thierry8 a écrit:Bonjour,

Alors tout d’abords un grand bravo pour ce partage…. ! Et félicitation…

merci! :wink:
thierry8 a écrit:Cependant quelques questions me taraudent encore…

- Vous dites que cela sera efficace en fonction du nombre de requête que l’on évite au serveur en mettant le code généré en cache. Mais quel est à peu près le nombre de requête ? (je comprends bien que cela dépends des requêtes, mais il s’agit juste d’avoir une idée)


par exemple, sur le site de mon profil, il faut compter 5 à 6 requêtes sql par page en moyenne (un peu plus pour la page d'accueil et les têtes de rubriques, un peu moins pour les pages de contenu) à multiplier par 15 à 20.000 pages par jours (pointe du traffic entre 18h30 et 21h30) soit en pointe 8 à 10.000 requêtes sql à l'heure!
thierry8 a écrit:- Je n’est pas bien saisie concernant le dossier cache, faut-il simplement le créer ? (dans ce cas quel droit unix doit-on lui donner, à quel endroit le créer ? public_html ?)


le dossier cache doit être accessible par un script php (je le met à la racine du site). Pour ce qui est des droits, public en lecture bien sur, en ecriture cela dépends de la config du serveur. Il peut etre en 755 par exemple si php en est le propriétaire.
thierry8 a écrit:- Vous dites que cela est avantageux si l’on est sur un serveur dédié… Mais si le dossier cache est à la racine de notre site, cela revient au même pour un serveur mut. Car le principe reste le même ! Plus besoin de régénérer le document, il est directement envoyé ? ai-je bien compris…. ?


Lorsque je dis que c'est moins interressant sur un mutualisé c'est parce que les ressources étant partagées par plusieurs sites, si il n'utilisent pas tous la mise en cache, l'éconnomie de resources sql peut ne pas être significative. En fait, si tu utilise la mise en cache sur ton site sur un mutualisé, tu partage le gain de ressources entre tous les sites héberges sur ce serveur.
thierry8 a écrit:- Si l’on possède un forum, on applique aussi ce type de méthode ? (je pense que ce doit-être lourd, non ? chaque modification supprimer la page en cache, la recréer en cache à la première demande…cela peut-être lourd pour un forum subissant beaucoup de modifications ?)

si ton forum est rewrité, ce n'est pas trés sorcier à mettre en place ni lourds. Par contre, s'il n'est pas rewrté, il te faut faire une tranformation d'une url en nom de fichier valide et unique. En fait, la taille du site n'est pas un problème (le site de mon profil compte plus de 50000 pages!), la fréquence de mise en jours non plus (je fait des mises à jour tout les jours) cela impose seulement beaucoup de rigueur et une structure de site simple et claire pour ne pas oublier d'effacer des pages lors des mises à jour (une simple mise à jour peut effacer 3 à 400 pages du cache)
thierry8 a écrit:- Enfin, pour supprimer la page en cache (j’ai bien bien compris qu’il y a un une méthode ftp) mais par impossibilité de procéder comme ceci, je souhaiterais savoir s’il existe une fonction (un code comme pour l’ajout en cache) qui permettrais de supprimer la page en cache à chaque modifcation…(par exemple un site administrable, qui voit son accueil modifier une foi par semaine, cette méthode serait très aventageuse !

Si tu ne peux pas utiliser les fonctions ftp, tu peux essayer avec la fonction unlink de php.

voila! :D

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Mar Juil 12, 2005 12:24

Ok ! merci pour ces éléments complémentaires...

thierry8 a écrit:

- Je n’est pas bien saisie concernant le dossier cache, faut-il simplement le créer ? (dans ce cas quel droit unix doit-on lui donner, à quel endroit le créer ? public_html ?)



le dossier cache doit être accessible par un script php (je le met à la racine du site). Pour ce qui est des droits, public en lecture bien sur, en ecriture cela dépends de la config du serveur. Il peut etre en 755 par exemple si php en est le propriétaire.


Donc il s'agit bêtement d'un dossier quelconque que l'on utilise pour gérer notre cache....

thierry8 a écrit:

- Vous dites que cela est avantageux si l’on est sur un serveur dédié… Mais si le dossier cache est à la racine de notre site, cela revient au même pour un serveur mut. Car le principe reste le même ! Plus besoin de régénérer le document, il est directement envoyé ? ai-je bien compris…. ?



Lorsque je dis que c'est moins interressant sur un mutualisé c'est parce que les ressources étant partagées par plusieurs sites, si il n'utilisent pas tous la mise en cache, l'éconnomie de resources sql peut ne pas être significative. En fait, si tu utilise la mise en cache sur ton site sur un mutualisé, tu partage le gain de ressources entre tous les sites héberges sur ce serveur.


Oui mais.... :) :oops: ... il y aura tout de même un gain de temps pour l'utilisateur...sans doute que pour les ressources cela sera inutile pour un hebergement mut., mais si un utilisateur demande une page déjà existante dans le cache se sera plus rapide que de la recréer...? donc il y a tout de même un gain...(aussi bien pour moi que pour les autres héberger) c'est d'ailleur aussi le but du cache...(ok pour les ressources mais pour cela aussi (vitesse)...non ?)

thierry8 a écrit:

- Si l’on possède un forum, on applique aussi ce type de méthode ? (je pense que ce doit-être lourd, non ? chaque modification supprimer la page en cache, la recréer en cache à la première demande…cela peut-être lourd pour un forum subissant beaucoup de modifications ?)


si ton forum est rewrité, ce n'est pas trés sorcier à mettre en place ni lourds. Par contre, s'il n'est pas rewrté, il te faut faire une tranformation d'une url en nom de fichier valide et unique. En fait, la taille du site n'est pas un problème (le site de mon profil compte plus de 50000 pages!), la fréquence de mise en jours non plus (je fait des mises à jour tout les jours) cela impose seulement beaucoup de rigueur et une structure de site simple et claire pour ne pas oublier d'effacer des pages lors des mises à jour (une simple mise à jour peut effacer 3 à 400 pages du cache)


Ce que je voulais dire, c'est qu'il peut savèrer plus long, pour l'utilisateur...
je m'explique, pour un forum, en prennant un sujet, s'il subit beaucoup de modification, il faudra non seulement rechercher la page dans la base de données mais en plus de ca il faudra très souvent ajouter ou supprimer dans le cache...donc la ou je veux en venir c'est que l'on peut etre perdant du fait que si c'est quelque chose qui est souvent modifié...on effectue plus de commande...donc pas de gain...voyez ou je veux en venir ?

voila! :roll:

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Mer Juil 13, 2005 17:59

snif...ne me laissé pas seul ! lol


tawath
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 30 Avr 2005

Message le Mer Juil 13, 2005 22:21

Hello
je fais tourner un cache sur un site en mutualisé ca soulage sans plus
en cas de requêtes multiple la db ne decroche plus
sur un site en duplicate mais dans un sous-domaine du premier
pas de cache et l'index s'affiche en moitie moins de temps...
La science s'interroge :oops:

[script] Mise en cache des pages PHP [script] Mise en cache des pages PHP

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités