La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5.

Présentations similaires


Présentation au sujet: "Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5."— Transcription de la présentation:

1 Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5 rue des Gazomètres, 1205 CH-Genève Tél: +41 22 / 388-33-14, francois-daniel.giezendanner@edu.ge.ch - Tél: +41 22 / 388-33-14, francois-daniel.giezendanner@edu.ge.ch -http://icp.ge.ch/sem/cms-spip/ Cours « Squelettes SPIP » - Mardi 21 avril et Mardi 5 mai 2009, 8h00-18h00

2 Le fonctionnement du cache Version 1

3

4 Lappel dune page spécifique se fait par lintermédiaire du moteur php de SPIP. http://monsite.net/spip.php?page=article&id_article=5 Par exemple, pour appeler larticle n°5, lURL correspondante est : Le principe de fonctionnement du cache Ou plus simplement depuis SPIP 1.9 : http://monsite.net/spip.php?article5

5 #CACHE{24*3600} Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant dossier /tmp/cache/ article5.php

6 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant 1. Le fichier appelé est donc article.html, avec en paramètre id_article=5. 1. Le fichier appelé est donc article.html, avec en paramètre id_article=5. article5.php dossier /tmp/cache/ #CACHE{24*3600}

7 2. La première tâche du moteur php de SPIP consiste à vérifier dans le dossier /CACHE sur votre serveur, sil existe déjà un fichier correspondant à cet article. 2. La première tâche du moteur php de SPIP consiste à vérifier dans le dossier /CACHE sur votre serveur, sil existe déjà un fichier correspondant à cet article. Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant article5.php dossier /tmp/cache/ #CACHE{24*3600}

8 2bis. Si un tel fichier existe dans le dossier de cache /tmp, le moteur php de SPIP vérifie sa date de création. Si ce fichier est suffisamment récent, il le retourne directement à lutilisateur. Le processus de consultation est alors terminé. 2bis. Si un tel fichier existe dans le dossier de cache /tmp, le moteur php de SPIP vérifie sa date de création. Si ce fichier est suffisamment récent, il le retourne directement à lutilisateur. Le processus de consultation est alors terminé. Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant article5.php dossier /tmp/cache/ #CACHE{24*3600}

9 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 article5.html 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant /tmp 3. Sil nexiste pas un tel fichier dans le cache /tmp (première visite sur cet article, par exemple), ou si son âge est trop ancien, Le moteur php de SPIP démarre le calcul de cette page. 3. Sil nexiste pas un tel fichier dans le cache /tmp (première visite sur cet article, par exemple), ou si son âge est trop ancien, Le moteur php de SPIP démarre le calcul de cette page. article5.php #CACHE{24*3600}

10 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 article5.html 2. SPIP vérifie dans le dossier de cache /tmp /cache/ Sil existe déjà le fichier correspondant /tmp 4. La page article.html est alors chargée et analysée. Elle contient la mise en page correspondant à ce type de document. Il sagit de HTML complété dindications permettant de placer les éléments tirés de la base de données. En fonction des éléments requis par article.html, SPIP va chercher les informations nécessaires tirées de la base de données mySQL et les insérer aux endroits prévus. 4. La page article.html est alors chargée et analysée. Elle contient la mise en page correspondant à ce type de document. Il sagit de HTML complété dindications permettant de placer les éléments tirés de la base de données. En fonction des éléments requis par article.html, SPIP va chercher les informations nécessaires tirées de la base de données mySQL et les insérer aux endroits prévus. article5.php #CACHE{24*3600}

11 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 article5.html 2. SPIP vérifie dans le dossier de cache /tmp Sil existe déjà le fichier correspondant 5. Un fichier est ainsi fabriqué par le moteur php de SPIP, à partir de la description contenue dans article.html, avec les éléments tirés de la base de données pour lid_article=5. Ce fichier est alors sauvegardé dans le dossier de cache /tmp et renvoyé au visiteur. article5.php dossier /tmp/cache/ #CACHE{24*3600}

12 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 article5.html 2. SPIP vérifie dans le dossier de cache /tmp Sil existe déjà le fichier correspondant Lors dune visite suivante, si le délai entre les deux visites est suffisamment court, cest donc ce nouveau fichier stocké dans le cache /tmp qui est retourné, sans avoir à faire un nouveau calcul à partir de la base de données. En cas de plantage de la base de données, cest forcément le fichier en cache qui est retourné, même sil est « trop âgé ». Lors dune visite suivante, si le délai entre les deux visites est suffisamment court, cest donc ce nouveau fichier stocké dans le cache /tmp qui est retourné, sans avoir à faire un nouveau calcul à partir de la base de données. En cas de plantage de la base de données, cest forcément le fichier en cache qui est retourné, même sil est « trop âgé ». article5.php dossier /tmp/cache/ #CACHE{24*3600}

13 Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article&id_article=5 article5.html 2. SPIP vérifie dans le dossier de cache /tmp Sil existe déjà le fichier correspondant Remarque. On voit ici que chaque page du site est mise en cache individuellement, et chaque re-calcul est provoqué par les visites du site. Il ny a pas, en particulier, un re-calcul de toutes les pages du site dun seul coup à échéance régulière (ce genre de « grosse manoeuvre » ayant le bon goût de surcharger le serveur et de le faire parfois planter). Remarque. On voit ici que chaque page du site est mise en cache individuellement, et chaque re-calcul est provoqué par les visites du site. Il ny a pas, en particulier, un re-calcul de toutes les pages du site dun seul coup à échéance régulière (ce genre de « grosse manoeuvre » ayant le bon goût de surcharger le serveur et de le faire parfois planter). article5.php dossier /tmp/cache/ #CACHE{24*3600}

14 Le fonctionnement du cache Version 2

15

16 Le fonctionnement du cache Version 3

17 Dans le dossier tmp/ sont stockés tous les fichiers temporaires : /cache/ : de caches des pages html affichées pour le site; /dump/ : de sauvegarde de la base de données (import /export); /upload/ : des arborescences de documents disponibles dans l espace privé. /visites/ : relatifs aux statistiques de consultation; *.log : de logs d exécution du site. Le dossier tmp/ peut être vidé à tout moment. Dans le dossier tmp/ sont stockés tous les fichiers temporaires : /cache/ : de caches des pages html affichées pour le site; /dump/ : de sauvegarde de la base de données (import /export); /upload/ : des arborescences de documents disponibles dans l espace privé. /visites/ : relatifs aux statistiques de consultation; *.log : de logs d exécution du site. Le dossier tmp/ peut être vidé à tout moment. Roles des répertoires et fichiers de tmp/

18 Le principe de fonctionnement du cache, de manière simplifiée Par défaut, une page est considérée comme trop vieille au bout de 3600 secondes Une fois que vous aurez compris le langage SPIP, vous pourrez modifier ce délai en vous servant de la balise #CACHE (cf. plus loin).

19 Le principe de fonctionnement du cache, de manière simplifiée Le système de cache permet : de stocker chaque page temporairement et ainsi déviter de provoquer des appels à la base de données à chaque visite.

20 tmp/cache/ est le dossier où sont placés les fichiers créés par le moteur SPIP pour le cache selon l'algorithme précédemment décrit et selon un délai fixé par linstruction #CACHE{86400} (86400 s) placée au début de chaque fichier html du squelette (ici 86400 s = 24 h x 3600 s/h). tmp/cache/ est le dossier où sont placés les fichiers créés par le moteur SPIP pour le cache selon l'algorithme précédemment décrit et selon un délai fixé par linstruction #CACHE{86400} (86400 s) placée au début de chaque fichier html du squelette (ici 86400 s = 24 h x 3600 s/h). Le principe de fonctionnement du cache, de manière simplifiée On peut aussi écrire linstruction (une balise SPIP) : #CACHE{24 * 3600} ou #CACHE{3 * 24 * 3600} placée au début de chaque squelette rubrique.html, article.html, breve.html, etc. On peut aussi écrire linstruction (une balise SPIP) : #CACHE{24 * 3600} ou #CACHE{3 * 24 * 3600} placée au début de chaque squelette rubrique.html, article.html, breve.html, etc. /cache/

21 Le principe de fonctionnement du cache, de manière simplifiée Vider le cache manuellement : Voir en ligne Le système de cache « construit » et stocke chaque page à des intervalles réguliers fixés par linstruction #CACHE{86400} dans le répertoire tmp/cache/. Il évite ainsi son recalcul à chaque visite d'un utilisateur : La base de données n'est pas sollicitée à chaque visite. La charge sur le serveur est réduite et la vitesse d'affichage des pages très largement accélérée. Le site sous SPIP reste consultable même lorsque la base mySQL est en panne. Le dossier tmp/cache/ peut être vidé à tout moment.

22 Le fonctionnement du cache Version 4

23 #CACHE{24*3600} Fichier appelé : page=article&id_article=5 1. Lutilisateur appelle la page : /spip.php?page=article& id_article=5 2. SPIP vérifie dans le dossier de cache /tmp/cache/ Sil existe déjà le fichier correspondant dossier /tmp/cache/ article.php Gérer le cache (1/5)

24 Gérer le cache (2/5) Lorsquune page est demandée à SPIP, par exemple lURL http://localhost/spip/spip.php?page=article&id_article=5 Dans notre exemple nous avions fixé des #CACHE{0} ; doù un recalcul systématique des pages à chaque consultation du site. Si ce délai nest pas dépassé, SPIP affiche le fichier présent dans le CACHE. Si ce délai est dépassé, SPIP recalcule le fichier comme indiqué ci-dessus. Si ce fichier existe, SPIP compare lâge du fichier caché aux $delais fixés dans le fichier dappel tutoriel.php3. SPIP regarde dans son sous-répertoire tmp/cache/ si ce fichier existe : Si ce fichier nexiste pas, SPIP calcule ce fichier en se connectant à la base de données pour y lire les informations requises, dépose le résultat du calcul dans le /tmp/cache et laffiche à l écran de lutilisateur.

25 La page « id_article=5 » est demandée à SPIP, c est à dire lURL http://localhost/spip/ spip.php?page=article& id_article=5, La page « id_article=5 » est demandée à SPIP, c est à dire lURL http://localhost/spip/ spip.php?page=article& id_article=5, Non : Délai dépassé Non : Délai dépassé Calcule id_article=5 en intégrant les éléments de la base de données Non Consulte CACHE : Existence fichier id_article=5 ? Mise en CACHE Affiche article12.html Oui $delais < Age-Fichier ? Affiche article5.html Fichier Existe ? Oui : Délai Non-dépassé Oui : Délai Non-dépassé (3/5)

26 La page « id_article=5 » est demandée à SPIP, c est à dire http://localhost/spip/spip.php?page= article&id_article=5, Non : Délai dépassé Non : Délai dépassé Calcule id_article=5 en intégrant les éléments de la base de données Non Consulte CACHE : Existence fichier id_article=5 ? Mise en CACHE Affiche article12.html Oui $delais < Age-Fichier ? Affiche article5.html Fichier Existe ? Oui : Délai Non-dépassé Oui : Délai Non-dépassé Schéma ou Organigramme ? Chacun choisit le «langage» qui lui convient ! Schéma ou Organigramme ? Chacun choisit le «langage» qui lui convient ! Distinguer : le Squelette HTML en amont du CACHE du Fichier HTML calculé pour le CACHE et lECRAN

27 Passons à #CACHE{3600} ; (cest en secondes) : Notre page web nest donc recalculée que si, lorsquun visiteur la demande, sa version cachée date de plus dune heure (soit 3600 s.). Sinon, SPIP lit simplement le contenu du fichier caché, et renvoie le résultat sans se connecter à la base de données (sauf pour y insérer un «hit» dans les statistiques). Pour développer en mode local : #CACHE{0} ; Pour la consultation en mode serveur : #CACHE{24*3600} ; ou plus : #CACHE{72*3600} ; (soit 3 jours par exemple) Gérer le cache (5/5) Réglage du délai :

28 Le fonctionnement du cache Version 5

29


Télécharger ppt "Le fonctionnement du cache Diverses manières de présenter En 5 Versions François Daniel Giezendanner, SEM (Service Ecoles et Medias) - DIP - Genève, 5."

Présentations similaires


Annonces Google