2. Qui suis-je ?
Frédéric Bouchery
➔ Développeur depuis 1983 (Ouïlle)
➔ Expérience professionnelle depuis 1996
➔ Expert PHP (pratique depuis 1999)
➔ Aujourd'hui, Lead Developer pour le groupe CCM Benchmark
➔ fbouchery@ccmbenchmark.com
➔ http://fr.linkedin.com/in/bouchery/
➔ @FredBouchery
4. Google sites
Facebook
Microsoft sites
CCM Benchmark
Yahoo ! sites
Wikimedia found.
Orange sites 20,4
21
21,8
23,2
29,8
35,3
43,7
Source: comScore MMX, France, Age 6+, Avril 2013
Top des sites en France - Visiteurs Uniques (en millions)
87ième
au classement mondial avec 60 millions de VU
20. Sauf que …
Ne fonctionne plus avec les ressources chargées
par Ajax !
Après le « window.onload », le navigateur prend
dans son cache
21. Toutes les ressources statiques devraient être :
Cache-control: public, max-age=30000000
Last-Modified: Xxx, xx xxx xxxx xx:xx:xx GMT
Une modification
Un nouveau nom !
Ou un paramètre dans l'URL
43. 3 Solutions se démarquent
Apache à la traîne … mais ...
➔ Varnish
➔ Nginx
➔ Squid
44. Varnish est la solution qui offre aujourd'hui le
plus de possibilité
Bonus : Nginx + Redis = accès direct au cache
Nginx reste plus performant sur les contenus
statiques
49. 2 Solutions se démarquent
➔ Memcached
➔ Redis
Autres solutions moins performantes :
Les « NoSQL » (MongoDB, CouchDB, Cassandra, etc.)
ou base avec table en mémoire (ex : MySQL + Memory Engine)
50. Memcached est la solution qui semble la plus
performante
Bonus : Redis permet de faire du message queuing
Redis est beaucoup plus riche en fonctionnalité
56. Exploiter le cache d'OP-Code en générant
des scripts PHP qui retournent des tableaux
<?php return array(
'id' => 'Ma donnée'
);
<?php
$data = include 'script.php';
<?php
$content = var_export($data, true);
file_put_contents('script.php', '<?php return ' . $content .';');
script.php
57. Pour résumer
✔ Maîtrisez vos caches
✔ Trouvez le bon TTL en fonction du contexte
✔ Réfléchir à la stratégie d'invalidation
✔ Plusieurs niveaux de cache
✔ Étudier le comportement des internautes
✔ Suivre les évolutions des solutions