Maison  >  Article  >  développement back-end  >  Exemple d'optimisation des performances PHP-FPM : méthodes pour améliorer l'efficacité de la mise en cache des données d'un site Web

Exemple d'optimisation des performances PHP-FPM : méthodes pour améliorer l'efficacité de la mise en cache des données d'un site Web

WBOY
WBOYoriginal
2023-10-05 11:27:16835parcourir

Exemple doptimisation des performances PHP-FPM : méthodes pour améliorer lefficacité de la mise en cache des données dun site Web

Exemple d'optimisation des performances PHP-FPM : méthodes pour améliorer l'efficacité de la mise en cache des données d'un site Web

Avec le développement rapide d'Internet, le nombre de visites sur le site Web augmente également, l'amélioration des performances du site Web est donc devenue un objectif important problème. En tant qu'interpréteur PHP couramment utilisé, PHP-FPM est particulièrement important pour l'optimisation des performances des sites Web. Cet article présentera quelques méthodes pour améliorer l'efficacité de la mise en cache des données de sites Web et fournira des exemples de code spécifiques.

  1. Utiliser des extensions de cache

En PHP, les extensions de cache couramment utilisées incluent Redis, Memcached, etc. Ces extensions stockent les données en mémoire et augmentent la vitesse à laquelle les données peuvent être lues. Lorsque vous utilisez des extensions de cache, vous pouvez mettre en cache certaines données fréquemment consultées pour éviter de les lire à chaque fois dans la base de données. Voici un exemple de code utilisant Redis comme cache :

// 连接Redis服务器
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// 检查缓存中是否存在数据
if ($redis->exists('cache_key')) {
    $result = $redis->get('cache_key');
} else {
    // 从数据库中读取数据
    $result = db_query('SELECT * FROM table');
  
    // 将数据存入缓存
    $redis->set('cache_key', $result, 60); //设置过期时间为60秒
}

// 使用数据
echo $result;
  1. Utilisation d'un proxy de mise en cache

Si le site Web contient une grande quantité de données, l'efficacité de la lecture des données directement à partir de la base de données sera relativement faible. À ce stade, vous pouvez utiliser un proxy de mise en cache pour stocker les résultats de la requête de base de données dans le cache, et la requête suivante lira les données directement à partir du cache. Les proxys de mise en cache couramment utilisés incluent le cache MySQL, le cache Nginx, etc. Voici un exemple de code utilisant le cache MySQL :

// 打开MySQL查询缓存
$query = "SELECT SQL_CACHE * FROM table";
$result = db_query($query);
while($row = mysql_fetch_assoc($result)) {}

// 使用数据
foreach($row as $key=>$value){
    echo $value;
}
  1. Mise en cache des fragments de page

Dans le développement de sites Web, certains fragments de page peuvent être chargés fréquemment, mais une partie du contenu peut ne pas changer fréquemment. A ce moment, cette partie du contenu qui ne change pas peut être mise en cache pour réduire la pression sur le serveur. Voici un exemple de code pour mettre en cache un fragment de page :

// 检查缓存文件是否存在
if (file_exists('cache.html')) {
    // 从缓存文件中读取内容
    $content = file_get_contents('cache.html');
} else {
    // 生成页面内容,并存入缓存文件
    $content = generate_content();
    file_put_contents('cache.html', $content);
}

// 输出页面内容
echo $content;
  1. Utilisation de l'en-tête de contrôle de cache

L'utilisation de l'en-tête de contrôle de cache peut indiquer au navigateur la période de validité du fichier mis en cache. Si le fichier mis en cache n'a pas expiré, le fichier mis en cache n'a pas expiré. Le navigateur lira le fichier directement à partir du cache au lieu de le télécharger à nouveau. Voici un exemple de code pour définir l'en-tête de contrôle du cache :

// 设置缓存有效期为1小时
$expires = 60 * 60;
header("Pragma: public");
header("Cache-Control: maxage=".$expires);
header('Expires: ' . gmdate("D, d M Y H:i:s", time() + $expires) . ' GMT');

// 输出页面内容
echo $content;

Grâce aux méthodes d'optimisation du cache ci-dessus, l'efficacité de la mise en cache des données du site Web peut être efficacement améliorée et la charge du serveur peut être réduite. Bien entendu, pour chaque site Web, des méthodes d’optimisation spécifiques doivent encore être déterminées en fonction de différentes circonstances. J'espère que le contenu ci-dessus vous sera utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn