Qu'est ce qui définit un cache ?
Il existe de nombreuses solutions de mises en cache des ressources d'une page web, tout dépend du trafic que l'on a à traiter et du budget disponible ! Cependant, la lecture et la sauvegarde de données est définit suivant 3 critères:contenu: que va t-on mettre en cache ?
des requêtes Sql, des bouts de codes sources ou encore la page HTML entière,
stockage: sur quel support stocker le cache ?
techniquement les données peuvent être stockés en RAM, dans une base de données ou sous forme d'un fichier,
validité: quand délivrer le contenu enregistré ?
en général, les données enregistrées sont affichées pour un durée de validité définit (par ex.le cache est valide pendant 1 mois) et pour un public choisit (par ex GoogleBot, des clients, tous les internautes).
Pourquoi mettre les données en cache ?
Les raisons peuvent être multiples et dépendent fortement de la configuration de son architecture internet et du trafic. En général, la question du système de cache fait suite à des lenteurs observées à la génération de page HTML. Le stockage de données apporte une réponse au points suivants:hausse de trafic: son site à du succès et le nombre de visiteurs augmente au fur et à mesure. Avant de changer d'hébergement, la mise en cache peut être une solution pour absorber les requêtes supplémentaires,
lissage de la charge: prenons le cas de figure: le matin, la charge du serveur est assez faible et en soirée le trafic explose. L'enregistrement des données le matin permettra de conserver un affichage fluide en soirée.
exclure des requêtes: certains robots n'y vont pas de main morte: plusieurs requêtes à la seconde pendant une demi-heure. Rediriger ces requêtes vers le cache permet de conserver une fluidité pour les internautes pendant le crawl.
Choisir un système de cache
Nous l'avons précédemment, le but de la mise en cache est de soulager la charge du serveur et de la base de données. Les solutions sont multiples et leur utilisation dépend de son infrastructure et de ses compétences. Les principes d'enregistrement de données de manière temporaire sont classés en 3 catégories:reverse proxy: placé en tête de l?infrastructure, ces solutions font également office de load balancer et dirige les requêtes vers la ressource demandée. Par exemple, les applications SQUID ou VARNISH sont un serveur HTTP de cache proposant pre-compilation, règles de routage, ...
opcode: les solutions les plus connus sont APC, eAccelerator ou encore Xcache. Le but est de mettre en mémoire des portions de code pré-compiler pour une réutilisation ultérieure.
cache script 100% HTML: le principe est simple: stocker une page HTML puis au moyen d'un Load Balancer minimaliste contrôler l'utilisation des données en cache.
Mettre en oeuvre un cache script
Dans le 3 articles suivants, nous allons détailler la mise en place d'un système de cache avec PHP. En fait, il s'agit des recherches entreprises pour le site Fobec.com pour la mise en place du cache. Le choix du système de stockage des données est évalué en fonction de la performance, de la facilité de mise en oeuvre et de la maintenance.cache page / fichier:
chaque page HTML du site est stockée sous forme d'un fichier sur le disque,
Lire l'article sur le cache fichier
cache dossier / zip:
plusieurs pages HTML sont enregistrées et compressées dans une archive ZIP,
Lire l'article sur le cache archive zip
cache dossier / base de donnée:
les pages HTML sont sauvegardées et compressées dans une base de données.