Je me suis développé rapidement un système de cache pour ce blog.
Tous les développeurs le savent mais il faut avouer que nous chargeons souvent les serveurs sans nécessité.
Résultat : CPU utilisé pour pas grand chose, consommation de ressources inutiles, temps de chargement allongé, etc.
Je parle surtout des requêtes vers la base de données qui sont très consommatrices. Réaliser un bon outil de cache pour du e-commerce, ce n'est pas évident car les données changent très souvent.
En revanche, pour un blog, un site vitrine, les données (en règle générale) bougent beaucoup moins.
Certains outils de cache bien qu'efficaces ont un fonctionnement étrange. Une fois une page "calculée" (requêtes + mise en forme), elle est sauvegardée. Puis lors d'un prochain appel, c'est cette page qui est affichée sans passer par l'étape requête. Jusque là, on est d'accord.
Mais, le cache est vidé de manière périodique (toutes les x heures, tous les jours, ...). Si certaines pages n'ont pas bougé, elles seront alors recalculées et c'est bien dommage.
Il est donc important d'utiliser des outils plus efficaces ou, dans le cas d'un développement sur-mesure, de passer du temps pour mettre en place un cache efficace.
Par exemple, sur ce blog, lorsque j'ajoute un article, la page sera mise en cache lors de son premier affichage. Le cache de la page d'accueil sera supprimé ainsi que la page archive. Le reste n'est pas touché. La totalité du cache n'est jamais vidé sauf action manuelle bien entendu.
Pour améliorer encore le tout, je pourrais même forcer la mise en cache dès la publication de l'article.