Comment mettre en cache dynamique page PHP
Comment cache de la page PHP qui a de requête mysql. Un exemple sera une grande et utile.
- Voulez-vous intégrer la mise en cache HTTP?
Vous devez vous connecter pour publier un commentaire.
Comment cache de la page PHP qui a de requête mysql. Un exemple sera une grande et utile.
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant phpFastCache ( pour l'hébergement mutualisé, si vous ne voulez pas toucher au php.ini et de la racine de l'installation memcached). Découvrez l'Exemple de Menu. Ils ont plein de détails exemple, et très facile.
D'abord, vous définissez avec phpFastCache::set, puis obtenir avec phpFastCache::get - FAIT!
Exemple: Réduire Les Appels De Base De Données
Votre site web ont de 10 000 visiteurs qui sont en ligne, et votre dynamique de la page à envoyer de 10 000 mêmes requêtes de base de données à chaque chargement de page. Avec phpFastCache, votre page d'envoyer seulement 1 de la requête dans la base de données, et utiliser le cache pour servir à 9 999 autres visiteurs.
Ma préférence est d'utiliser la mise en cache proxy inverse, comme Vernis.
Autant qu'une pure solution PHP, vous pourriez avoir un peu de code à la fin de votre script qui met en cache le résultat final, et de code au début qui vérifie pour voir si la page est mise en cache. Si la page a été trouvée dans le cache, et de l'envoyer et de sortie plutôt que de l'exécution de requêtes de nouveau.
Évidemment, cela a besoin de beaucoup de personnalisation pour votre installation, y compris l'expiration du cache, un
$cache_key
qui répond à vos besoins, et la détection d'erreurs si mauvais pages ne sont pas mises en cache.cache_output
?ob_start()
spécifiecache_output()
que son rappel. Ainsi, l'implicite de la chasse à la fin des appelscache_output()
.memcache votre code html, puis de faire quelque chose comme ceci:
L'important, souvent négligé quand il y a des discussions sur la mise en cache, est le processus de synchronisation afin d'éviter fil de la course (voir: https://en.wikipedia.org/wiki/Race_condition).
Typique de la mise en cache scénario en PHP sans synchronisation ressemble à ceci: si vous n'avez pas de ressources dans le cache, ou d'une ressource est expiré, il doit être créé et mis en cache. Premier thread/processus qui se déroule à la rencontre de cette condition est d'essayer de créer des ressources, et pendant ce temps, les autres threads permettra aussi de créer de la ressource, ce qui conduit à fil de la course, cache claquent et les performances downspike.
Problème est amplifié par le nombre de threads simultanés et la charge de travail créé par des ressources à la tâche de la création. Les systèmes, il peut conduire à de graves problèmes.
Il existe très peu de systèmes de mise en cache pour PHP qui prend en compte la synchronisation.
L'un d'eux est php-pas-slam-cache: https://github.com/tztztztz/php-no-slam-cache